JP2004040622A - Encryption processing system - Google Patents

Encryption processing system Download PDF

Info

Publication number
JP2004040622A
JP2004040622A JP2002197068A JP2002197068A JP2004040622A JP 2004040622 A JP2004040622 A JP 2004040622A JP 2002197068 A JP2002197068 A JP 2002197068A JP 2002197068 A JP2002197068 A JP 2002197068A JP 2004040622 A JP2004040622 A JP 2004040622A
Authority
JP
Japan
Prior art keywords
data
encryption
response
command
processing system
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.)
Granted
Application number
JP2002197068A
Other languages
Japanese (ja)
Other versions
JP4183986B2 (en
Inventor
Yoshihiro Yano
矢野 義博
Tokio Handa
半田 富己男
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2002197068A priority Critical patent/JP4183986B2/en
Publication of JP2004040622A publication Critical patent/JP2004040622A/en
Application granted granted Critical
Publication of JP4183986B2 publication Critical patent/JP4183986B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To improve security by reducing the possibility that a correspondence relation between data to be a source of encryption and encrypted data is intercepted by an illegal method. <P>SOLUTION: A reader/writer transmits an encryption command (a) including plaintext data to an IC card to make encryption processing to be carried out in the IC card, and an encrypted sentence is made to be returned as a response. In such a case, the obtained encrypted sentence is divided to prepare a plurality of blocks 21 to 23, and the blocks are distributed to a plurality of responses to be returned. The reader/writer gives return request commands (c) and (e) until all of the blocks are returned. The IC card includes the remaining blocks in responses (d) and (f) and returns the responses. The number of divided blocks and the data length of each block are determined at random and a return order is also determined at random. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は暗号処理システムに関し、特に、ICカードなどの携帯型の暗号化装置を利用した暗号処理システムに関する。
【0002】
【従来の技術】
インターネットを中心とする世界的規模のネットワーク環境が広まったことにより、社会生活上の様々な分野において、データの暗号化が必要になってきている。たとえば、個人を認証するための方法として、従来の署名に代えて、デジタル署名の利用が普及し始めているが、このデジタル署名にも暗号化の技術が用いられている。すなわち、署名の対象となるメッセージデータについてのデジタル署名は、当該メッセージデータに対して、秘密データを用いた所定の秘密アルゴリズムに基く暗号化演算を行うことにより作成される。デジタル署名を作成するための暗号化演算には、公開鍵暗号方式が用いられており、作成されたデジタル署名からは秘密データを求めることはできない。したがって、デジタル署名を入手した第三者が、このデジタル署名に基づいてもとの秘密データを知得することはできない配慮がなされている。しかしながら、秘密データ自体が不正な手段で読み出されてしまうと、デジタル署名の偽造が可能になってしまう。このため、秘密データを格納し、この秘密データを用いてデジタル署名を作成する暗号化装置としては、可能な限りセキュリティの高い装置を用いるのが好ましい。
【0003】
このような理由から、デジタル署名などの個人用の暗号化処理を行うのに適した暗号化装置として、現在、ICカードが広く利用されるようになってきている。個人個人にICカードを配付し、このICカード内に各個人用の秘密データを格納するようにすれば、秘密データを十分なセキュリティの下に管理することが可能になる。暗号化装置として機能するICカード内には、格納された秘密データを利用した所定のアルゴリズムに基づく暗号化演算プログラムが組み込まれており、暗号化演算はすべてICカードの内部で実行されることになる。暗号化の対象となる第1のデータは、データ処理装置として機能するコンピュータ側で用意し、これをリーダライタ装置を介してICカードへと送信すればよい。ICカードは、リーダライタ装置を介して与えられた第1のデータに対して内部で所定の暗号化演算を実行し、作成した第2のデータを再びリーダライタ装置を介してコンピュータ側へと返信する。
【0004】
【発明が解決しようとする課題】
上述したICカードを利用した暗号処理システムでは、暗号化演算に必要な秘密データや秘密のアルゴリズムはすべてICカード内に格納され、不正な方法で外部に読み出されることのないような十分なセキュリティ対策が講じられている。しかしながら、データ処理装置として機能するコンピュータと、暗号化装置として機能するICカードと、の間の通信が傍受されると、秘密データや秘密のアルゴリズム自体が暴露されることはないものの、「特定の平文データに対して、特定の暗号文データが得られた」という事実は外部に漏れてしまうことになる。このような通信傍受は、リーダライタ装置とICカードとの間の信号経路において行うことも可能であるし、コンピュータとリーダライタ装置との間の信号経路において行うことも可能である。更に、コンピュータ内のメモリを探索することによっても、通信傍受と同等の結果を得ることができる。最近は、このような通信傍受機能をもったコンピュータウイルスを配付することにより不正行為を行う例も少なくない。このような不正行為により、「特定の平文データと特定の暗号文データとの対応関係」が多数入手されると、これらを解析することにより、ICカード内の秘密データが推定されてしまう危険性が出てくる。また、通信傍受により、暗号を作成させるためのコマンドコードを割り出すことも可能であり、不正アクセス者が、意図的に作成した都合のよい平文データを、割り出したコマンドコードとともにICカードに与えることにより、当該平文データに対応する暗号データを入手する、という不正行為が可能になり、様々な方法で暗号解読への悪用が行われる可能性がある。
【0005】
そこで本発明は、暗号化のもとになるデータと、暗号化したデータとの対応関係が、不正な方法で傍受される蓋然性を低減し、よりセキュリティを向上させることが可能な暗号処理システムを提供することを目的とする。
【0006】
【課題を解決するための手段】
(1)  本発明の第1の態様は、暗号化処理の対象となる第1のデータに基いて、秘密のアルゴリズムを用いた暗号化演算を行うことにより、第2のデータを作成する処理を行う暗号処理システムにおいて、
内部に秘密のアルゴリズムを記憶し、外部から与えられた第1のデータに対して秘密のアルゴリズムに基づく演算を実行することにより、当該第1のデータに対応した第2のデータを作成する機能をもった暗号化装置と、
暗号化装置に接続することができ、暗号化処理の対象となる第1のデータを用意する機能と、用意した第1のデータを暗号化装置に送信する機能と、暗号化装置の内部で作成された第2のデータを受信する機能と、を有するデータ処理装置と、
を設け、
暗号化装置とデータ処理装置との間の情報のやりとりが、データ処理装置から暗号化装置に対して所定のコマンドを送信する送信処理と、暗号化装置からデータ処理装置に対してコマンドに応じたレスポンスを返信する返信処理と、を交互に実行することによりなされるように構成し、
データ処理装置が、暗号化処理の対象となる第1のデータを含んだ「暗号化コマンド」を暗号化装置に対して送信し、これに応じて暗号化装置から返信されてくるレスポンスを受信する第1の能動処理と、第2のデータの返信を要求するための「返信要求コマンド」を暗号化装置に対して送信し、これに応じて暗号化装置から返信されてくるレスポンスを受信する第2の能動処理と、受信した複数のレスポンスに含まれているデータを合成することにより第2のデータを組み立てる合成処理と、を行うようにし、
暗号化装置が、「暗号化コマンド」が送信されてきたときに、当該コマンドに含まれている第1のデータに対して秘密のアルゴリズムに基づく演算を実行することにより、当該第1のデータに対応した第2のデータを作成し、当該「暗号化コマンド」に応じたレスポンスとして、作成した第2のデータを全く含まないかあるいはその一部のみを含む所定のレスポンスを返信する第1の受動処理と、「返信要求コマンド」が送信されてきたときに、当該「返信要求コマンド」に応じたレスポンスとして、作成した第2のデータの一部のみを含む所定のレスポンスを返信する第2の受動処理と、を行うようにしたものである。
【0007】
(2)  本発明の第2の態様は、上述の第1の態様に係る暗号処理システムにおいて、
データ処理装置が、第1のデータとして、暗号化処理の対象となる平文データを用意し、合成処理により得られた第2のデータを、平文データに対する暗号文データとして取り扱うようにしたものである。
【0008】
(3)  本発明の第3の態様は、上述の第1の態様に係る暗号処理システムにおいて、
データ処理装置が、第1のデータとして、デジタル署名の対象となる所定のメッセージデータを用意するようにし、合成処理により得られた第2のデータを、メッセージデータに対する個人認証用のデジタル署名として取り扱うようにしたものである。
【0009】
(4)  本発明の第4の態様は、上述の第1〜第3の態様に係る暗号処理システムにおいて、
ICカードを暗号化装置として用い、当該ICカードにアクセスする機能をもったリーダライタ装置およびこのリーダライタ装置を制御するためのコンピュータをデータ処理装置として用いるようにしたものである。
【0010】
(5)  本発明の第5の態様は、上述の第1〜第3の態様に係る暗号処理システムにおいて、
クライアントコンピュータを暗号化装置として用い、このクライアントコンピュータにインターネットを介して接続されたサーバコンピュータをデータ処理装置として用いるようにしたものである。
【0011】
(6)  本発明の第6の態様は、上述の第1〜第5の態様に係る暗号処理システムにおいて、
暗号化装置が、作成した第2のデータを複数n個のブロックに分割し、n個の各ブロックをn回のレスポンスに分けてデータ処理装置に返信する処理を行うようにしたものである。
【0012】
(7)  本発明の第7の態様は、上述の第6の態様に係る暗号処理システムにおいて、
暗号化装置が、ブロックの分割数nおよび各ブロックのデータ長を、ランダムに決定するようにしたものである。
【0013】
(8)  本発明の第8の態様は、上述の第7の態様に係る暗号処理システムにおいて、
暗号化装置が、ランダムに決定した分割数nおよび各ブロックのデータ長を示す情報を、いずれかのレスポンスに含ませてデータ処理装置に返信するようにし、
データ処理装置が、この返信された情報に基いて第2のデータの入手を行うようにしたものである。
【0014】
(9)  本発明の第9の態様は、上述の第6〜第8の態様に係る暗号処理システムにおいて、
暗号化装置が、n個の各ブロックの順序をランダムに入れ替える処理を行い、このn個の各ブロックを、入れ替えた後の順序で、個々のレスポンスに含ませてデータ処理装置に返信する処理を行い、かつ、入れ替えた後のブロック順を示す情報を、いずれかのレスポンスに含ませてデータ処理装置に返信するようにし、
データ処理装置が、この返信された情報に基いて第2のデータの組み立てを行うようにしたものである。
【0015】
(10) 本発明の第10の態様は、上述の第8または第9の態様に係る暗号処理システムにおいて、
暗号化装置が、分割数nを示す情報、各ブロックのデータ長を示す情報、入れ替えた後のブロック順を示す情報の少なくとも1つを、「暗号化コマンド」に応じたレスポンスに含ませて返信するようにしたものである。
【0016】
(11) 本発明の第11の態様は、上述の第1〜第10の態様に係る暗号処理システムにおいて、
暗号化装置が、第1の受動処理として返信する「暗号化コマンドに応じたレスポンス」または第2の受動処理として返信する「返信要求コマンドに応じたレスポンス」に、作成した第2のデータとは無関係なダミーデータを含ませるようにしたものである。
【0017】
(12) 本発明の第12の態様は、上述の第1〜第11の態様に係る暗号処理システムにおいて、
データ処理装置が、第2の能動処理として送信する「返信要求コマンド」に、意味のないダミーデータを含ませるようにしたものである。
【0018】
【発明の実施の形態】
以下、本発明を図示する実施形態に基づいて説明する。
【0019】
§1.本発明の基本的な実施形態
図1は、本発明の基本的な実施形態に係る暗号処理システムの構成を示すブロック図である。この暗号処理システムは、図示のとおり、データ処理装置100と、暗号化装置200とによって構成されている。この実施形態では、データ処理装置100は、コンピュータ110とリーダライタ装置120とによって構成されており、暗号化装置200は、ICカードによって構成されている。ICカードからなる暗号化装置200には、図示のとおり、情報通信部210、コマンド解釈部220、暗号演算部230、レスポンス返信部240なる構成要素が設けられている。もっとも、これらの各構成要素は、ICカードのソフトウエア上の機能に着目した構成を示すものであり、ハードウエア上の構成要素の観点からは、ICカードは、CPUと、メモリ(RAM,ROM,EEPROM)と、入出力インターフェイスと、を備えており、情報通信部210は入出力インターフェイスにより構成され、コマンド解釈部220、暗号演算部230、レスポンス返信部240は、各メモリおよびCPUによって構成される。
【0020】
ICカードからなる暗号化装置200は、携帯型の情報処理装置であり、各ユーザが携帯することができ、必要に応じて、データ処理装置100に接続して利用することができる。最近は、既に種々の用途でICカードが利用され始めている。したがって、暗号化装置200は、必ずしも暗号化処理機能のみを果たす専用のICカードとして提供する必要はなく、実用上は、複数の用途に共用される汎用のICカードを暗号化装置200として利用することが可能である。リーダライタ装置120は、このICカードからなる暗号化装置200と接続して、情報のやりとりを行う機能を有しており、ICカードに対する直接のアクセスは、すべてリーダライタ装置120によって実行される。一方、コンピュータ110は、周辺機器として接続されたリーダライタ装置120を制御する機能を有し、たとえば、個人用のパーソナルコンピュータによって構成することができる。
【0021】
ここでは、このコンピュータ110に、インターネットに接続してWebページを閲覧するWebブラウザソフトウエアが組み込まれており、ユーザがインターネットを介して、特定のサイトに、何らかの暗号化したデータを送信する場合を例にとって、このシステムの基本動作を説明する。このような基本動作は、データ処理装置100と暗号化装置200との分業によって行われる。
【0022】
すなわち、まず、データ処理装置100側において、暗号化処理の対象となる第1のデータ10が用意される。第1のデータ10は、コンピュータ110のキーボードなどを利用して、ユーザからの直接入力により用意するようにしてもよいし、記憶装置内のファイルなどから読み出すことにより用意するようにしてもよい。もちろん、ネットワークを介して、コンピュータ110内に取り込むことにより、第1のデータ10を用意することも可能である。こうしてコンピュータ110内に用意された第1のデータ10は、リーダライタ装置120を介して、暗号化装置200へと送信される。より具体的には、後述するように、第1のデータ10はコマンドの形式でリーダライタ装置120から情報通信部210へと送信され、コマンド解釈部220を経て暗号演算部230へと送られる。暗号演算部230は、この第1のデータ10に基いて、秘密のアルゴリズムを用いた暗号化演算を行うことにより、第2のデータ20を作成する。こうして作成された第2のデータ20は、レスポンス返信部240へと送られ、ここから情報通信部210を介してレスポンスとしてリーダライタ装置120へと送られる。
【0023】
図2は、このような暗号化処理の概念を示す図である。図示の例では、第1のデータ10は、平文からなる文字列データであり、第2のデータ20は、暗号文からなる文字列データである。平文からなる文字列データは、データ処理装置100側で用意された後、暗号化装置200側へと送信され、暗号化装置200内において、秘密のアルゴリズムに基づく演算を行うことにより暗号文にされる。こうして作成された暗号文からなる文字列データは、再び、データ処理装置100側へと送信される。このように、暗号化処理を、わざわざ暗号化装置200内で行う理由は、秘密のアルゴリズムについてのセキュリティを高めるためである。暗号化装置200内で行われる秘密のアルゴリズムに基づく演算は、通常、個々の暗号化装置200に固有の秘密データを利用して行われるが、秘密のアルゴリズムも、秘密データも、いずれも暗号化装置200の内部に格納され、外部へ読み出されることがないような措置が採られているため、不正な手段により、秘密のアルゴリズムや秘密データが外部に読み出されることはない。
【0024】
結局、暗号化装置200は、データ処理装置100側から送信されてきた第1のデータ10に基いて、暗号演算部230内に格納されている秘密のアルゴリズムを用いた暗号化演算を行うことにより第2のデータ20を作成し、作成した第2のデータ20を暗号化装置200へと返信する機能を果たす装置ということになり、データ処理装置100は、暗号化処理の対象となる第1のデータ10を用意し、この用意した第1のデータ10を暗号化装置200に送信し、暗号化装置200の内部で作成された第2のデータ20を受信する機能を果たす装置ということになる。こうして、コンピュータ110内に、第2のデータ20が入手できたら、この第2のデータ20をインタネットを介して所定のサイトへと送信することができる。
【0025】
さて、このように、データ処理装置100側で第1のデータ10を用意し、これを暗号化装置200側に与えて、暗号化装置200側の内部演算で第2のデータ20を作成させ、この第2のデータ20を再びデータ処理装置100側へ返信させる、という基本動作を行うためには、当然ながら、データ処理装置100と暗号化装置200との間で情報のやりとりを行う必要がある。一般に、ICカードとリーダライタ装置との間の情報のやりとりは、リーダライタ装置側から所定のコマンドをICカード側へと送信し、このコマンドに応じた所定のレスポンスをICカード側からリーダライタ装置側へと返信させる、という交信処理を交互に実行することによりなされる。
【0026】
ここでは、説明の便宜上、まず、従来の一般的なICカードを利用した暗号処理システムにおける暗号化処理の手順を述べる。従来の手順では、はじめに、リーダライタ装置からICカードに対して、たとえば図3(a) に示すような「暗号化コマンド」を与え、これに応じて、ICカードからリーダライタ装置に対して、たとえば図3(b) に示すようなレスポンスを返信させる、という処理を行い、第1のデータ10(平文からなる文字列データ)に応じた第2のデータ20(暗号文からなる文字列データ)を作成させることになる。図3に示す具体的な例の場合、「暗号化コマンド」は、「CRYPT」なるコマンドコード(当該コマンドが、暗号化処理を要求するためのコマンドであることを示すコード)からなるコマンド部と、「平文からなる文字列データ(第1のデータ10)」によって構成されるデータ部と、を有している。一方、この「暗号化コマンド」に対するレスポンスは、「OK」なるステータスコード(与えられたコマンドが正しく処理されたことを示すコード)からなるステータス部と、「暗号文からなる文字列データ(第2のデータ20)」によって構成されるデータ部と、を有している。ICカード側に、図3(a) に示すような「暗号化コマンド」を解釈し、このコマンドのデータ部に含まれる第1のデータ10を暗号化して第2のデータ20を作成し、これをデータ部に含んだ図3(b) に示すようなレスポンスを返信する処理を行う機能をもたせておけば、このICカードに対して、図3(a) に示すような「暗号化コマンド」を与えると、図3(b) に示すようなレスポンスが返信されることになり、第1のデータ10を暗号化した第2のデータ20を得ることができる。
【0027】
しかしながら、このように、暗号化の対象となる第1のデータ10をデータ処理装置100側で用意し、この第1のデータ10を含むコマンドを暗号化装置200(ICカード)に与え、暗号化装置200からデータ処理装置100に返信されてくるレスポンスとして、作成された第2のデータ20を得る、という方法を採る以上、データ処理装置100と暗号化装置200との間の交信傍受などの不正手段による攻撃の対象となり、暗号化装置200内の秘密データや秘密のアルゴリズムを推測する手掛かりを与えてしまうおそれがあることは既に述べたとおりである。たとえば、図3に示す例の場合、交信傍受などの方法により、図3(a) に示す「暗号化コマンド」に対して、図3(b) に示すレスポンスが返信された、という事実が認識できれば、第1のデータ10に対応する暗号文が第2のデータ20であることがわかってしまう。もちろん、このような一対の平文データと暗号文データとの組み合わせだけでは、暗号化装置200内の秘密データや秘密のアルゴリズムを推測することは非常に困難であるが、交信傍受を継続すれば、第1のデータ10と第2のデータ20との多数の組み合わせが蓄積でき、このような蓄積が多くなればなるほど、秘密データや秘密のアルゴリズムの推測確率が高まってゆく。また、「暗号化コマンド」のコードが「CRYPT」であることが認識できれば、不正者自身が任意のデータを含んだ「暗号化コマンド」を与え、これに対応するレスポンスを得ることができるようになるので、秘密データや秘密のアルゴリズムは、より推測しやすくなる。
【0028】
本発明は、このように、データ処理装置100から暗号化装置200に対して所定のコマンドを送信する送信処理と、暗号化装置200からデータ処理装置100に対して当該コマンドに応じたレスポンスを返信する返信処理と、を交互に実行することにより、両者間における情報のやりとりが行われる暗号処理システムにおいて、セキュリティの向上を図ることを目的とするものである。その要点は、暗号化装置200の内部において、第2のデータ20を得る演算処理が行われた後、この第2のデータ20を、図4に示すように、複数n個(図示の例では、n=3)のブロック21〜23に分割し、このn個の各ブロック21〜23をn回のレスポンスに分けてデータ処理装置100に返信させるようにする点にある。すなわち、従来は、図3(b) に示す「暗号化コマンドに対するレスポンス」によって、第2のデータ20を返信していたが、本発明では、「暗号化コマンドに対するレスポンス」には、作成した第2のデータ20の一部のみを含ませるか、あるいは、第2のデータ20を全く含ませないようにし、第2のデータ20を、複数回のレスポンスによって小出しに返信するようにするのである。
【0029】
このように、本発明では、「暗号化コマンドに対するレスポンス」だけでは、第2のデータ20全体をデータ処理装置100に返信することはできず、必ず複数回のレスポンスが必要になる。ところが、暗号化装置200側からレスポンスを得るためには、データ処理装置100側から何らかのコマンドを送信してやる必要がある。別言すれば、リーダライタ装置とICカードとの交信は、常に、リーダライタ装置側から能動的な働きかけ、すなわち、コマンドの送信を行い、このコマンドに対するレスポンスとして、ICカード側から受動的な返信が返される、という方式を採る必要がある。そこで、本発明では、暗号化装置200(ICカード)に対して第2のデータ20の返信を要求するための「返信要求コマンド」を用意し、この「返信要求コマンド」に対するレスポンスとして、第2のデータ20の一部を返信させるようにしている。たとえば、図4に示すように、第2のデータ20を3つのブロック21〜23に分割した場合であれば、第1のブロック21については、「暗号化コマンドに対するレスポンス」として返信し、第2のブロック22については、後続して与えられる「返信要求コマンドに対するレスポンス」として返信し、第3のブロック23については、更に後続して与えられる別な「返信要求コマンドに対するレスポンス」として返信するようにすればよい。
【0030】
図5に示すコマンドおよびレスポンスのやりとりは、上述のようにして、3分割した第2のデータ20を3回のレスポンスに分けて返信させる一例である。まず、データ処理装置100から暗号化装置200に対して、図5(a) に示すような「暗号化コマンド」が与えられる。この例では、「暗号化コマンド」は、「CRYPT」なるコマンドコードからなるコマンド部と、平文からなる文字列データ(第1のデータ10)からなるデータ部と、によって構成されている。このような「暗号化コマンド」は、リーダライタ装置120から情報通信部210に与えられ、コマンド解釈部220によって解釈される。そして、コマンド解釈部220は、この「暗号化コマンド」に含まれている第1のデータ10を暗号演算部230へと与え、暗号化演算を実行させる。この暗号化演算の結果として得られた第2のデータ20は、レスポンス返信部240へと与えられるが、このレスポンス返信部240は、与えられた第2のデータ20を1回のレスポンスで返信することはせず、複数n個のブロックに分割した上で、これを一時的に記憶し、複数回のレスポンスに分けて返信する処理を行う。
【0031】
ここに示す例では、第2のデータ20は、図4に示すように、3つのブロック21〜23に分割され、3回のレスポンスに分けて返信されることになる。すなわち、まず、第1のブロック21は、図5(b) に示すように、「暗号化コマンドに対するレスポンス」として返信される。このレスポンスは、「OK」なるステータスコード(与えられた「暗号化コマンド」が支障なく実行されたことを示すコード)からなるステータス部と、第1のブロック21からなるデータ部と、によって構成されている。「暗号化コマンド」に対するレスポンスという意味では、この図5(b) に示すレスポンスは、図3(b) に示す従来のレスポンスと同等のレスポンスであるが、図3(b) に示す従来のレスポンスには、第2のデータ20の全体が含まれていたのに対し、図5(b) に示す本発明のレスポンスには、第2のデータ20の一部分のみしか含まれていないことになる。
【0032】
本発明では、「暗号化コマンドに対するレスポンス」では返信されなかった部分についての返信を要求するために、更に、データ処理装置100から暗号化装置200に対して、図5(c) に示すような「返信要求コマンド」を与える必要がある。この例では、「返信要求コマンド」は「REPLY」なるコマンドコードからなるコマンド部のみから構成され、データ部は存在しない。このような「返信要求コマンド」が情報通信部210を介してコマンド解釈部220に与えられると、コマンド解釈部220はレスポンス返信部240に対して、返信すべき次のブロックをレスポンスとして返す処理を行うよう指示を与える。これにより、データ処理装置100に対して、図5(d) に示すような「返信要求コマンドに対するレスポンス」が返信される。このレスポンスは、「OK」なるステータスコードからなるステータス部に、第2のブロック22からなるデータ部を加えたレスポンスであり、与えられた「返信要求コマンド」が支障なく実行されたことを示すとともに、返信対象となる第2のブロック22を含むレスポンスということになる。続いて、データ処理装置100から暗号化装置200に対して、図5(e) に示すような「返信要求コマンド」(図5(c) のコマンドと同じコマンド)を与えると、暗号化装置200からデータ処理装置100に対して、図5(f) に示すようなレスポンスが返信されることになる。このレスポンスには、返信すべき第3のブロック23が含まれている。かくして、データ処理装置100側には、3回のレスポンスによって、全ブロック21〜23が返信されることになるので、これらを組み立てる合成処理を行えば、第2のデータ20を得ることができるようになる。
【0033】
結局、上述の例の場合、暗号化装置200内で作成された第2のデータ20が、3つのブロック21〜23に分割され、それぞれ図5(b) ,(d) ,(f) という3回のレスポンスに分けて返信されたことになる。このような手法を採れば、万一、通信傍受などの不正な方法で、図5(a) および(b) に示すようなコマンド/レスポンス対が認識されたとしても、図5(a) に示す「暗号化コマンド」に含まれている第1のデータ10と、図5(b) に示すレスポンスに含まれている第1のブロック21とは、平文/暗号文の対としては不完全であるため、暗号演算部230における暗号化処理で利用されている秘密データや秘密のアルゴリズムを推測しにくくすることができる。
【0034】
なお、「返信要求コマンド」が与えられたのに、レスポンス返信部240内に返信すべきブロックが存在しない場合(たとえば、「暗号化コマンド」を与える前に、「返信要求コマンド」を与えてしまった場合や、すべてのブロックが返信済みとなっているにもかかわらず、更に、「返信要求コマンド」を与えてしまった場合)には、当該「返信要求コマンド」に対しては、ステータス部にエラーを示すステータスが書き込まれたレスポンスが返信されることになる。
【0035】
結局、本発明に係る暗号処理システムでは、第1のデータ10を暗号化した第2のデータ20を得るために、データ処理装置100および暗号化装置200において、それぞれ次のような処理が行われることになる。なお、ここでは、説明の便宜上、データ処理装置100側の処理を「能動処理」、暗号化装置200側の処理を「受動処理」と呼んで区別することにする。
【0036】
まず、データ処理装置100側では、次のような処理が行われる。はじめに、暗号化処理の対象となる第1のデータを含んだ「暗号化コマンド」を暗号化装置200に対して送信し、これに応じて暗号化装置200から返信されてくるレスポンスを受信する第1の能動処理が行われる。すなわち、この第1の能動処理は、図5(a) に示すような「暗号化コマンド」を送信し、これに応じて返信されてくる図5(b) に示すようなレスポンスを受信する処理ということになる。続いて、第2のデータの返信を要求するための「返信要求コマンド」を暗号化装置200に対して送信し、これに応じて暗号化装置200から返信されてくるレスポンスを受信する第2の能動処理が行われる。この第2の能動処理は、図5(c) に示すような「返信要求コマンド」を送信し、これに応じて返信されてくる図5(d) に示すようなレスポンスを受信する処理ということになる。図5に示す例の場合、このような第2の能動処理がもう1回繰り返して行われることになる。こうして、第2のデータ20を構成する全ブロックが返信されてきたら、データ処理装置100は、最後に、受信した複数のレスポンスに含まれているデータを合成することにより第2のデータ10を組み立てる合成処理を行う。すなわち、図5に示す例の場合、3回のレスポンスに含まれている3つのブロック21〜23を組み立てることにより、第2のデータ20を得る合成処理が行われることになる。
【0037】
なお、上述した第1の能動処理と第2の能動処理とは、必ずしも連続して実行する必要はなく、両処理の間に別な処理(データ処理装置100側から何らかのコマンドを送信し、これに応じて何らかのレスポンスを受信する処理)を実行してもかまわない。また、第2の能動処理を繰り返し実行する場合も、各処理の間に別な処理を介在させてかまわない。もちろん、暗号化装置200に対するコマンド送信作業は、ユーザの直接的な指示に基づいて行われるわけではなく、データ処理装置100を構成するコンピュータ110上で実行されているプログラムの指示に基づいて行われることになる。したがって、上述した第1の能動処理や第2の能動処理の手順は、このコンピュータ110上で実行されるプログラムに記述されていることになる。
【0038】
一方、暗号化装置200側では、個々のコマンドが与えられるたびに、このコマンドの内容に応じた所定の処理が実行され、所定のレスポンスを返信する処理が実行されることになる。具体的には、まず、上述した「暗号化コマンド」が送信されてきたときには、当該コマンドに含まれている第1のデータ10に対して秘密のアルゴリズムに基づく演算を実行することにより、当該第1のデータ10に対応した第2のデータ20を作成し、当該「暗号化コマンド」に応じたレスポンスとして、その一部のみを含む所定のレスポンスを返信する第1の受動処理が行われる。すなわち、この第1の受動処理は、データ処理装置100から暗号化装置200に対して、図5(a) に示すような、第1のデータ10を含んだ「暗号化コマンド」が送信されてきた場合に、第1のデータ10に基いて第2のデータ20を作成し、この第2のデータ20の一部のみ(第1のブロック21)を含む図5(b) に示すようなレスポンスをデータ処理装置100へ返信する処理ということができる。もっとも、図5に示す例では、「暗号化コマンド」に対するレスポンスに、第2のデータ20の一部である第1のブロック21を含ませるようにしているが、「暗号化コマンド」に対するレスポンスには、第2のデータ20を全く含ませないようにしてもかまわない。この場合、図5(b) に示すレスポンスのデータ部は、たとえば、空の状態にしておけばよく、第2のデータ20を構成する各ブロックは、すべて「返信要求コマンド」に対するレスポンスとして返信されることになる。
【0039】
暗号化装置200に対して、「返信要求コマンド」が送信されてきたときには、当該「返信要求コマンド」に応じたレスポンスとして、過去に作成してレスポンス返信部240内に記憶されていた第2のデータの一部(まだ返信していないで残っている一部)を含む所定のレスポンスを返信する第2の受動処理が行われる。すなわち、この第2の受動処理は、図5(c) ,(e) に示すような「返信要求コマンド」に応じて、図5(d) ,(f) に示すようなレスポンスを返信する処理ということができる。レスポンス返信部240には、返信すべきブロックが一時的に記憶されており、「返信要求コマンド」が与えられるたびに、次に返信すべき順番のブロックを、レスポンスに含ませて返信する処理が行われる。なお、上述したように、「返信要求コマンド」が送信されてきたのにも拘わらず、レスポンス返信部240内に返信すべきブロックが残っていなかった場合には、エラーを示すレスポンスが返信されることになる。
【0040】
もちろん、この第1の受動処理と第2の受動処理とは、実際には、暗号化装置200を構成するICカード内のCPUが、ROMやEEPROMなどに予め格納されたプログラムに基づいて実行する処理である。したがって、上述した第1の受動処理や第2の受動処理の手順は、このICカード上で実行されるプログラムに記述されていることになる。
【0041】
§2.その他の実施形態
以上、本発明の基本的な実施形態を述べたが、ここでは、いくつかの有益な別な実施形態について述べる。まず、本発明では、上述したように、暗号化装置200側で作成した第2のデータ20を、複数n個のブロックに分割することになるが、セキュリティをより高めるために、ブロックの分割数nおよび各ブロックのデータ長は、暗号化装置200側でその都度ランダムに決定するようにするのが好ましい。また、暗号化装置200側で、n個の各ブロックの順序をランダムに入れ替える処理を行い、このn個の各ブロックを、入れ替えた後の順序で、個々のレスポンスに含ませてデータ処理装置100に返信する処理を行うようにするのが好ましい。
【0042】
たとえば、図6(a) に示すように、暗号化装置200側で、第2のデータ20を3つのブロック21,22,23に分割した場合を考えてみる。ここで、分割数n=3は乱数を用いてランダムに決定するようにし、各ブロック21〜23のデータ長L1〜L3も、乱数を用いてランダムに決定するようにする。そして、この3つのブロックの順序を、図6(b) に示すように入れ替える。このようなブロック順の入れ替えも、乱数を用いてランダムに決定するようにする。こうして、図6(b) に示すように、各ブロックの順序がランダムに入れ替えられたら、この3個の各ブロックを、入れ替えた後の順序で、個々のレスポンスに含ませて返信するのである。すなわち、図6(b) の例の場合、ブロックを返信すべき最初のレスポンスでは、第3のブロック23が返信され、2番目のレスポンスでは、第1のブロック21が返信され、3番目のレスポンスで、第2のブロック22が返信されることになる。
【0043】
このように、分割数n、各ブロックのデータ長、入れ替えた後のブロック順を、暗号化装置200側でランダムに決定するようにした場合、データ処理装置100側にも、これらの情報を知らせておく必要がある。そのためには、これらの情報を、暗号化装置200側からデータ処理装置100側に与えるいずれかのレスポンスに含ませておくようにすればよい。特に、分割数nに関する情報は、「暗号化コマンド」に対するレスポンスに含ませておくのが好ましい。そうすれば、データ処理装置100側では、「暗号化コマンド」に対するレスポンスにより、分割数nを認識することができるので、その後、「返信要求コマンド」を何回与えれば、全ブロックが返信されるかを知ることができ、必要な回数だけ、「返信要求コマンド」を与える処理を行うことができる。もっとも、第2のデータ20の全データ長を予め定めておくことができれば、返信されてきたブロックのデータ長の累積値が当該全データ長に達するまで、データ処理装置100側から繰り返し「返信要求コマンド」を与えるようにすればよいので、分割数nに関する情報や各ブロックのデータ長に関する情報をデータ処理装置100側に伝達することは、本発明を実施する上での必須の事項ではない。
【0044】
図7は、本発明の別な実施形態に係るコマンドおよびレスポンスのやりとりを示す図である。図7(a) に示す「暗号化コマンド」は、図5(a) に示す「暗号化コマンド」と全く同様に、第1のデータ10に対する暗号化処理を要求するコマンドである。一方、この実施形態では、このコマンドに対するレスポンスは、図7(b) に示すようなものになる。このレスポンスは、「OK」なるステータスコードからなるステータス部と、図示のようなデータ部と、によって構成されている。データ部には、分割数n、ブロック順、ブロック長を示す情報が含まれている。すなわち、図示の例では、分割数nは「3」、ブロック順は「3→1→2(第3のブロック→第1のブロック→第2のブロックの順に返信される意味)」、ブロック長は「L3,L1,L2(ブロック順に応じて、第3のブロックのブロック長はL3,第1のブロックのブロック長はL1,第2のブロックのブロック長はL2の意味)」なる情報がデータ部に含まれている。
【0045】
また、図7(b) に示すレスポンスのデータ部には、ダミーデータが付加されている。このダミーデータは、暗号化装置200内で作成された第2のデータ20とは無関係な意味のない何らかのデータである。このようなダミーデータの付加は、通信傍受に対するセキュリティを向上させる上で有効である。すなわち、図7(a) ,(b) のようなコマンド/レスポンス対が不正な手段で傍受された場合でも、ダミーデータの存在により、両者の対応関係についての解析をより困難にさせることができる。
【0046】
データ処理装置100は、図7(b) に示すようなレスポンスを受信することにより、第2のデータ20が3つのブロックに分けて返信されてくること、「3→1→2」のブロック順で返信されてくること、各ブロックのデータ長がそれぞれ「L3,L1,L2」であること、を知ることができる。これにより、3回の「返信要求コマンド」が必要なことを認識することができ、まず、図7(c) に示すように、第1回目の「返信要求コマンド」を送信する。なお、「返信要求コマンド」には、本来、データ部は不要であるが、この図7(c) に示す例では、「返信要求コマンド」のデータ部に、意味のないダミーデータを含ませるようにしている。これは、やはりダミーデータの存在により、コマンド/レスポンス対が不正な手段で傍受された場合でも、両者の対応関係についての解析をより困難にさせるための配慮である。
【0047】
この例では、図7(c) に示す「返信要求コマンド」に応じたレスポンスとして、図7(d) に示すようなレスポンスが返信されている。このレスポンスは、「OK」なるステータスコードからなるステータス部と、図示のようなデータ部と、によって構成されている。データ部には、最初の順番に相当する第3のブロックとともに、セキュリティ向上のために付加されたダミーデータが含まれている。データ処理装置100側には、既に各ブロックのブロック長の情報が伝達されているので、本来のブロックデータと、ダミーデータとを識別することが可能である。たとえば、図7(d) に示すようなデータ部については、先頭からデータ長L3に相当する部分までが第3のブロックを構成するデータであり、これに後続する部分はダミーデータである、との認識ができる。同様にして、更に2回の「返信要求コマンド」が送信され、これに応じてそれぞれレスポンスが返信されることになり、データ処理装置100側に、3つのブロックすべてが返信されることになる。データ処理装置100は、ブロック順「3→1→2」なる情報に基いて、返信されてきた3つのブロックを並べかえて組み立てる合成処理を行い、最終的に第2のデータ20を得ることができる。
【0048】
以上、データ処理装置100において用意された平文データを第1のデータ10として暗号化装置200に与え、この平文データに対応した暗号文データを構成する第2のデータ20を作成し、これを複数のレスポンスに分けて返信する例を示したが、本発明に係る暗号処理システムは、必ずしも平文データを暗号文データに変換する用途だけに限定されるものではない。たとえば、データ処理装置100に、第1のデータ10として、個人認証用のデジタル署名の対象となる所定のメッセージデータを用意する機能をもたせ、暗号化装置200側では、このメッセージデータに対する暗号化処理により、所定のデジタル署名を作成する演算を行わせ、このデジタル署名からなる第2のデータ20を複数のレスポンスに分けて返信させるようにしてもかまわない。この場合、データ処理装置100側では、得られた第2のデータを、第1のデータを構成するメッセージデータに対する個人認証用のデジタル署名として取り扱うことになる。
【0049】
図8は、このようなデジタル署名の具体例を示す図である。ここでは、「特許太郎」なる特定のユーザが、コンピュータ110を用いて特定のWebサイトにアクセスし、当該Webサイトが運営するオンライン書店に、百科事典の発注を行う具体的な例をとりあげてみる。まず、このような発注を行うために、ユーザ「特許太郎」は、図8に示すようなメッセージデータM(「百科事典一式を注目します。」なる文字列からなるデータ)をコンピュータ110に入力する。すると、このメッセージデータMは、第1のデータ10として、リーダライタ装置120を介して情報通信部210へと送信され、暗号演算部230に与えられる。ここで、このユーザ「特許太郎」の所持するICカード内の暗号演算部230には、図8に示すような秘密データH(この例では、便宜上、「ABC123」なる文字列であったとする)が格納されていたものとしよう。秘密データHは、このICカードをユーザ「特許太郎」に発行する際に、発行元において所定の方法で書き込まれる。
【0050】
この場合、暗号演算部230は、予め用意されていた所定のアルゴリズムに基づいて、メッセージデータMに対して、秘密データHを利用した所定の演算を実行し、メッセージデータMに対する個人認証用のデジタル署名Dを作成する。ここでは、たとえば、図8に示すようなデジタル署名D(この例では、便宜上、「456789」なる数値であったとする)が作成されたものとしよう。デジタル署名作成のための具体的なアルゴリズムとしては、たとえば、「メッセージデータMを構成する文字列に、秘密データHを構成する文字列を付加し、これら文字列を16進数に置き換えて数値化し、この数値にハッシュ関数を作用させたハッシュ値をデジタル署名とする」というようなアルゴリズムを用いればよい。ある元になる数値にハッシュ関数を作用させることにより得られるハッシュ値は一義的に定まるが、ハッシュ値から元になる数値を逆算することはできないので、メッセージデータMと秘密データHとが与えられれば、暗号演算部230によって、ハッシュ値として与えられるデジタル署名Dを一義的に求めることができるが、逆に、デジタル署名DとメッセージデータMとが既知であったとしても、それらから秘密データHを求めることはできない。したがって、デジタル署名Dは、メッセージデータMを暗号化したデータということができる。
【0051】
こうして、暗号演算部230によって作成された「456789」なる数値からなるデジタル署名Dは、レスポンス返信部240に一時的に記憶された後、複数回のレスポンスに分けて、リーダライタ装置120側へと返信されることになる。たとえば、「456789」なる数値は、「45」、「67」、「89」という3つのブロックに分割され、3回のレスポンスに分けて返信される。コンピュータ110は、これらを合成することにより、「456789」なるデジタル署名Dを復元することになる。かくして、コンピュータ110は、メッセージデータMとともにデジタル署名Dを、「特許太郎」なるユーザからの注文として、オンライン書店のサイトへと送信して、百科事典の発注を行うことになる。
【0052】
一方、暗号演算部230内に格納されている秘密データHは、信頼すべき認証局にも、「特許太郎」なるユーザの個人認証用秘密データとして登録されている。したがって、「百科事典一式注文します。」なるメッセージデータMと、「456789」なるデジタル署名Dとを、「特許太郎」なるユーザからの注文として受信したオンライン書店は、これらを認証局に照会することにより、メッセージデータMおよびデジタル署名Dの組み合わせが、確かに「特許太郎」から発信されたものであることを確認することができる。すなわち、認証局において、「百科事典一式注文します。」なるメッセージデータMと、特許太郎の秘密データHとして登録されている「ABC123」なるデータとを用いて、所定のアルゴリズム(暗号演算部230により実行される署名作成処理と同じアルゴリズム)による演算を実行し、「456789」なる同一のデジタル署名Dが得られれば、「百科事典一式注文します。」なるメッセージデータMと、「456789」なるデジタル署名Dとの組み合わせが、確かに「特許太郎」なるユーザが発信したものであることが確認されることになる。もちろん、メッセージデータMの一部が改竄された場合には、得られるデジタル署名が異なることになるため、正しい認証結果は得られなくなる。
【0053】
図9は、本発明の更に別な実施形態を示すブロック図である。図1に示す基本的実施形態では、コンピュータ110およびリーダライタ装置120によってデータ処理装置100を構成し、ICカードによって暗号化装置200を構成していた。これに対して、図9に示す実施形態は、データ処理装置と暗号化装置とがインターネット300を介して通信を行う形態である。すなわち、この実施形態では、クライアントコンピュータ310、これに接続されたリーダライタ装置320、これに接続されたICカード330という構成要素全体が暗号化装置として機能し、サーバコンピュータ340がデータ処理装置として機能することになる。クライアントコンピュータ310とサーバコンピュータ340とは、インターネット300を介して接続されており、サーバコンピュータ340側からクライアントコンピュータ310に対して所定のコマンドを与えると、クライアントコンピュータ310側で当該コマンドが実行される(必要に応じて、リーダライタ装置320を介してICカード330へのアクセスが行われる)。そして、当該コマンドの実行結果が、インターネット300を介して、サーバコンピュータ340へレスポンスとして返信される構成となっている。
【0054】
具体的には、サーバコンピュータ340からクライアントコンピュータ310に対して、第1のデータ10を含む「暗号化コマンド」を与えると、この「暗号化コマンド」は、リーダライタ装置320を介してICカード330へと与えられ、第2のデータ20が作成されることになる。この第2のデータ20は、リーダライタ装置320を介してクライアントコンピュータ310へと伝達される。そして、この第2のデータ20は、クライアントコンピュータ310からインターネット300を介してサーバコンピュータ340へレスポンスとして送信されることになるが、このとき、第2のデータ20が複数n個のブロックに分割され、複数回のレスポンスに分けてサーバコンピュータ340側へと送信されることになる。このため、インターネット300上での不正な傍受が行われたとしても、通常の方法に比べて高いセキュリティ効果が得られることになる。
【0055】
もちろん、図9に示すクライアントコンピュータ310およびリーダライタ装置320をデータ処理装置として、図9に示すICカード330を暗号化装置として、本発明を実施することも可能であり、その場合には、図9に示す形態では、いわば「入れ子式」に本発明を適用することが可能になる。すなわち、クライアントコンピュータ310およびリーダライタ装置320をデータ処理装置として、ICカード330を暗号化装置として、本発明を実施した場合には、リーダライタ装置320とICカード330との間の通信傍受に対するセキュリティを向上させることができる。一方、クライアントコンピュータ310、リーダライタ装置320、ICカード330という構成要素全体を暗号化装置として、サーバコンピュータ340をデータ処理装置として、本発明を実施した場合には、インターネット300上の通信傍受に対するセキュリティを向上させることができる。
【0056】
以上、本発明をいくつかの実施形態に基いて説明したが、本発明はこれらの実施形態に限定されるものではなく、この他にも種々の形態で実施可能である。たとえば、上述の実施形態では、第2のデータ20を複数のブロックに分割する際に、ひとまとまりのデータを1つのブロックとするような分割形態を採っているが、具体的なブロック分割はどのような形態を採ってもかまわない。たとえば、1バイト目、4バイト目、7バイト目、…というように3バイトおきに抽出したデータを第1のブロックとし、2バイト目、5バイト目、8バイト目、…というように3バイトおきに抽出したデータを第2のブロックとし、3バイト目、6バイト目、9バイト目、…というように3バイトおきに抽出したデータを第3のブロックとする、というような分割形態を採ることも可能である。
【0057】
【発明の効果】
以上のとおり本発明に係る暗号処理システムによれば、暗号化のもとになるデータと、暗号化したデータとの対応関係が、不正な方法で傍受される蓋然性を低減し、よりセキュリティを向上させることが可能になる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る暗号処理システムの基本構成を示すブロック図である。
【図2】一般的な暗号化処理の概念を示す図である。
【図3】従来の暗号処理システムにおいて暗号化を行うために用いられるコマンド/レスポンスの一例を示す図である。
【図4】本発明において暗号化により得られる文字列データを分割する態様の一例を示す図である。
【図5】本発明に係る暗号処理システムにおいて、暗号化を行うために用いられるコマンド/レスポンスの一例を示す図である。
【図6】本発明において暗号化により得られる文字列データを分割し、更に順序を入れ替える態様の一例を示す図である。
【図7】本発明に係る暗号処理システムにおいて、暗号化を行うために用いられるコマンド/レスポンスの別な態様の一例を示す図である。
【図8】一般的なデジタル署名システムで用いられているメッセージデータM、秘密データH、デジタル署名Dの具体例を示す図である。
【図9】本発明の変形例に係る暗号処理システムの基本構成を示すブロック図である。
【符号の説明】
10…第1のデータ(平文からなる文字列データ)
20…第2のデータ(暗号文からなる文字列データ)
21〜23…分割により得られた個々のブロック
100…データ処理装置
110…コンピュータ
120…リーダライタ装置
200…暗号化装置(ICカード)
210…情報通信部
220…コマンド解釈部
230…暗号演算部
240…レスポンス返信部
300…インターネット
310…クライアントコンピュータ
320…リーダライタ装置
330…ICカード
340…サーバコンピュータ
D…デジタル署名
H…秘密データ
L1〜L3…各ブロックのデータ長
M…メッセージデータ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a cryptographic processing system, and more particularly, to a cryptographic processing system using a portable encryption device such as an IC card.
[0002]
[Prior art]
With the spread of a global network environment centered on the Internet, data encryption has become necessary in various fields of social life. For example, as a method for authenticating an individual, use of a digital signature instead of a conventional signature has begun to spread, and an encryption technique is also used for this digital signature. That is, the digital signature of the message data to be signed is created by performing an encryption operation on the message data based on a predetermined secret algorithm using secret data. A public key cryptosystem is used for an encryption operation for creating a digital signature, and secret data cannot be obtained from the created digital signature. Therefore, consideration has been given that a third party who has obtained the digital signature cannot know the original secret data based on the digital signature. However, if the secret data itself is read by unauthorized means, it becomes possible to forge a digital signature. For this reason, it is preferable to use a device having the highest possible security as an encryption device that stores secret data and creates a digital signature using the secret data.
[0003]
For these reasons, IC cards are now widely used as encryption devices suitable for performing personal encryption processes such as digital signatures. By distributing an IC card to an individual and storing secret data for each individual in the IC card, it becomes possible to manage the secret data with sufficient security. An encryption operation program based on a predetermined algorithm using stored secret data is incorporated in the IC card functioning as an encryption device, and all the encryption operations are performed inside the IC card. Become. The first data to be encrypted may be prepared on a computer functioning as a data processing device and transmitted to an IC card via a reader / writer device. The IC card internally executes a predetermined encryption operation on the first data provided via the reader / writer device, and returns the created second data to the computer again via the reader / writer device. I do.
[0004]
[Problems to be solved by the invention]
In the above-described cryptographic processing system using an IC card, all security data and secret algorithms necessary for the encryption operation are stored in the IC card, and sufficient security measures are taken so that they cannot be read out by an unauthorized method. Has been taken. However, if the communication between the computer functioning as the data processing device and the IC card functioning as the encryption device is intercepted, the secret data and the secret algorithm itself will not be disclosed, but the "specific The fact that specific ciphertext data has been obtained for plaintext data "will be leaked to the outside. Such communication interception can be performed on a signal path between the reader / writer device and the IC card, or can be performed on a signal path between the computer and the reader / writer device. Further, by searching the memory in the computer, a result equivalent to the wiretapping can be obtained. In recent years, there are many cases in which a computer virus having such a communication interception function is distributed to perform an illegal act. If a large number of "correspondences between specific plaintext data and specific ciphertext data" are obtained due to such misconduct, there is a danger that secret data in the IC card is estimated by analyzing these. Comes out. In addition, it is also possible to determine a command code for generating a cipher by interception of a communication, and an unauthorized access person can give an intentionally created convenient plaintext data to the IC card together with the determined command code. In this case, an illegal act of obtaining encrypted data corresponding to the plaintext data becomes possible, and there is a possibility that the decryption is misused by various methods.
[0005]
Therefore, the present invention provides a cryptographic processing system capable of improving the security by reducing the probability that the correspondence between the data to be encrypted and the encrypted data is intercepted by an unauthorized method. The purpose is to provide.
[0006]
[Means for Solving the Problems]
(1) According to a first aspect of the present invention, a process of creating second data by performing an encryption operation using a secret algorithm based on first data to be encrypted is performed. In the cryptographic processing system to be performed,
A function of internally storing a secret algorithm and performing an operation based on the secret algorithm on first data given from the outside to create second data corresponding to the first data. With an encryption device
A function of preparing first data that can be connected to the encryption device and subject to encryption processing, a function of transmitting the prepared first data to the encryption device, and a function of creating the first data inside the encryption device. A data processing device having a function of receiving the obtained second data;
And
The exchange of information between the encryption device and the data processing device is performed in accordance with a transmission process of transmitting a predetermined command from the data processing device to the encryption device and a command from the encryption device to the data processing device in response to the command. A response process for returning a response and a response process are performed alternately.
The data processing device transmits an “encryption command” including the first data to be encrypted to the encryption device, and receives a response returned from the encryption device in response to the “encryption command”. A first active process and a “reply request command” for requesting a return of the second data are transmitted to the encryption device, and a response returned from the encryption device is received in response to the command. 2 and an combining process of assembling second data by combining data included in the plurality of received responses.
When the “encryption command” is transmitted, the encryption device performs an operation based on a secret algorithm on the first data included in the command, thereby providing the first data with A first passive unit that creates corresponding second data and returns a predetermined response that does not include the created second data at all or includes only a part of the created second data as a response to the “encryption command”. Processing, and when a “reply request command” is transmitted, a second passive part that returns a predetermined response including only a part of the created second data as a response corresponding to the “reply request command” And processing.
[0007]
(2) The second aspect of the present invention provides the cryptographic processing system according to the first aspect,
The data processing device prepares plaintext data to be subjected to encryption processing as first data, and handles the second data obtained by the synthesis processing as ciphertext data for the plaintext data. .
[0008]
(3) A third aspect of the present invention provides the cryptographic processing system according to the first aspect, wherein
The data processing device prepares predetermined message data to be a digital signature as the first data, and treats the second data obtained by the synthesizing process as a digital signature for personal authentication of the message data. It is like that.
[0009]
(4) A fourth aspect of the present invention provides the cryptographic processing system according to the first to third aspects described above.
An IC card is used as an encryption device, and a reader / writer device having a function of accessing the IC card and a computer for controlling the reader / writer device are used as a data processing device.
[0010]
(5) A fifth aspect of the present invention provides the cryptographic processing system according to the first to third aspects described above.
A client computer is used as an encryption device, and a server computer connected to the client computer via the Internet is used as a data processing device.
[0011]
(6) A sixth aspect of the present invention provides the cryptographic processing system according to the first to fifth aspects, wherein:
The encryption device divides the created second data into a plurality of n blocks, and performs a process of dividing each of the n blocks into n responses and returning the data to the data processing device.
[0012]
(7) A seventh aspect of the present invention provides the cryptographic processing system according to the sixth aspect, wherein
The encryption device randomly determines the number of block divisions n and the data length of each block.
[0013]
(8) An eighth aspect of the present invention provides the cryptographic processing system according to the seventh aspect, wherein
The encryption device returns information to the data processing device by including information indicating the randomly determined number of divisions n and the data length of each block in one of the responses,
The data processing device obtains the second data based on the returned information.
[0014]
(9) A ninth aspect of the present invention provides the cryptographic processing system according to the sixth to eighth aspects, wherein:
The encryption device performs a process of randomly changing the order of each of the n blocks, and includes a process of returning the data to the data processing device by including each of the n blocks in an individual response in the changed order. And information indicating the block order after the replacement is included in one of the responses and returned to the data processing device,
The data processing device assembles the second data based on the returned information.
[0015]
(10) A tenth aspect of the present invention provides the cryptographic processing system according to the eighth or ninth aspect, wherein
The encryption device returns at least one of the information indicating the number of divisions n, the information indicating the data length of each block, and the information indicating the order of the blocks after the replacement in a response corresponding to the “encryption command”. It is intended to be.
[0016]
(11) An eleventh aspect of the present invention provides the cryptographic processing system according to the first to tenth aspects, wherein
The second data created by the encryption device in the “response corresponding to the encrypted command” returned as the first passive process or the “response corresponding to the return request command” returned as the second passive process is as follows. This is to include irrelevant dummy data.
[0017]
(12) A twelfth aspect of the present invention provides the cryptographic processing system according to the first to eleventh aspects,
The data processing device includes meaningless dummy data in a "reply request command" transmitted as the second active process.
[0018]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, the present invention will be described based on an illustrated embodiment.
[0019]
§1. Basic embodiment of the present invention
FIG. 1 is a block diagram showing a configuration of a cryptographic processing system according to a basic embodiment of the present invention. This cryptographic processing system includes a data processing device 100 and an encryption device 200 as shown in the figure. In this embodiment, the data processing device 100 includes a computer 110 and a reader / writer device 120, and the encryption device 200 includes an IC card. As shown, the encryption device 200 composed of an IC card is provided with components such as an information communication unit 210, a command interpretation unit 220, a cryptographic operation unit 230, and a response return unit 240. However, each of these components shows a configuration focusing on the software functions of the IC card. From the viewpoint of the hardware components, the IC card is composed of a CPU, a memory (RAM, ROM). , EEPROM) and an input / output interface. The information communication unit 210 is configured by an input / output interface, and the command interpreting unit 220, the cryptographic operation unit 230, and the response returning unit 240 are configured by each memory and CPU. You.
[0020]
The encryption device 200 composed of an IC card is a portable information processing device, can be carried by each user, and can be used by connecting to the data processing device 100 as needed. Recently, IC cards have already begun to be used for various purposes. Therefore, the encryption device 200 does not necessarily need to be provided as a dedicated IC card that performs only the encryption processing function. In practice, a general-purpose IC card shared for a plurality of uses is used as the encryption device 200. It is possible. The reader / writer device 120 has a function of exchanging information by connecting to the encryption device 200 including the IC card. All direct access to the IC card is executed by the reader / writer device 120. On the other hand, the computer 110 has a function of controlling the reader / writer device 120 connected as a peripheral device, and can be configured by, for example, a personal computer for personal use.
[0021]
Here, Web browser software for browsing a Web page by connecting to the Internet is incorporated in the computer 110, and a case where a user transmits some encrypted data to a specific site via the Internet is assumed. By way of example, the basic operation of this system will be described. Such a basic operation is performed by division of labor between the data processing device 100 and the encryption device 200.
[0022]
That is, first, the first data 10 to be encrypted is prepared on the data processing apparatus 100 side. The first data 10 may be prepared by direct input from a user using a keyboard or the like of the computer 110, or may be prepared by reading from a file or the like in a storage device. Of course, it is also possible to prepare the first data 10 by taking it into the computer 110 via a network. Thus, the first data 10 prepared in the computer 110 is transmitted to the encryption device 200 via the reader / writer device 120. More specifically, as described later, the first data 10 is transmitted from the reader / writer device 120 to the information communication unit 210 in the form of a command, and is transmitted to the cryptographic operation unit 230 via the command interpretation unit 220. The cryptographic operation unit 230 creates the second data 20 by performing an encryption operation using a secret algorithm based on the first data 10. The second data 20 created in this way is sent to the response reply unit 240, and from there, sent as a response to the reader / writer device 120 via the information communication unit 210.
[0023]
FIG. 2 is a diagram illustrating the concept of such an encryption process. In the illustrated example, the first data 10 is character string data composed of plain text, and the second data 20 is character string data composed of cipher text. The character string data composed of plain text is prepared on the data processing device 100 side, transmitted to the encryption device 200 side, and converted into cipher text by performing an operation based on a secret algorithm in the encryption device 200. You. The character string data composed of the ciphertext created in this way is transmitted to the data processing device 100 again. The reason why the encryption process is performed in the encryption device 200 is to increase the security of the secret algorithm. The operation based on the secret algorithm performed in the encryption device 200 is usually performed using secret data unique to each encryption device 200. However, both the secret algorithm and the secret data are encrypted. Since measures are taken such that the secret algorithm and the secret data are stored inside the device 200 and are not read outside, the secret algorithm or the secret data is not read outside by an unauthorized means.
[0024]
After all, the encryption device 200 performs an encryption operation using a secret algorithm stored in the encryption operation unit 230 based on the first data 10 transmitted from the data processing device 100 side. The data processing device 100 creates the second data 20 and returns the created second data 20 to the encryption device 200. The data processing device 100 performs the first This is a device that prepares the data 10, transmits the prepared first data 10 to the encryption device 200, and receives the second data 20 created inside the encryption device 200. Thus, when the second data 20 can be obtained in the computer 110, the second data 20 can be transmitted to a predetermined site via the Internet.
[0025]
By the way, as described above, the first data 10 is prepared on the data processing device 100 side, and the first data 10 is provided to the encryption device 200 side, and the second data 20 is created by the internal operation of the encryption device 200 side. In order to perform the basic operation of returning the second data 20 to the data processing device 100 again, it is of course necessary to exchange information between the data processing device 100 and the encryption device 200. . In general, when exchanging information between an IC card and a reader / writer, a predetermined command is transmitted from the reader / writer to the IC card, and a predetermined response corresponding to this command is transmitted from the IC card to the reader / writer. This is performed by alternately executing a communication process of sending a reply to the side.
[0026]
Here, for convenience of explanation, first, a procedure of an encryption process in a conventional encryption processing system using a general IC card will be described. In the conventional procedure, first, for example, an “encryption command” as shown in FIG. 3A is given from the reader / writer device to the IC card. For example, a process shown in FIG. 3B is performed to return a response, and the second data 20 (character string data composed of cipher text) corresponding to the first data 10 (character string data composed of plain text) Will be created. In the specific example shown in FIG. 3, the “encryption command” includes a command portion including a command code “CRYPT” (a code indicating that the command is a command for requesting an encryption process). , A data portion composed of “character string data composed of plain text (first data 10)”. On the other hand, the response to the “encrypted command” includes a status part consisting of a status code “OK” (a code indicating that the given command has been correctly processed) and “character string data consisting of cipher text (second Data 20) ". The IC card interprets the “encrypted command” as shown in FIG. 3A, and encrypts the first data 10 included in the data part of the command to create the second data 20. Is provided in the data portion, a function of returning a response as shown in FIG. 3 (b) {} can be provided to the IC card, as shown in FIG. 3 (a) { Is given, a response as shown in FIG. 3B is returned, and the second data 20 obtained by encrypting the first data 10 can be obtained.
[0027]
However, as described above, the first data 10 to be encrypted is prepared on the data processing device 100 side, and a command including the first data 10 is given to the encryption device 200 (IC card) to encrypt the data. Since a method of obtaining the created second data 20 as a response returned from the device 200 to the data processing device 100 is employed, unauthorized access such as communication interception between the data processing device 100 and the encryption device 200 is performed. As described above, there is a risk of being subjected to an attack by means and giving clues to guess secret data and a secret algorithm in the encryption device 200. For example, in the case of the example shown in FIG. 3, the fact that the response shown in FIG. 3B was returned in response to the "encrypted command" shown in FIG. If possible, it will be understood that the cipher text corresponding to the first data 10 is the second data 20. Of course, it is very difficult to guess the secret data and the secret algorithm in the encryption device 200 only by combining such a pair of plaintext data and ciphertext data, but if communication interception is continued, A large number of combinations of the first data 10 and the second data 20 can be accumulated, and the more such accumulations, the higher the probability of estimating the secret data and the secret algorithm. If the code of the “encrypted command” can be recognized as “CRYPT”, the fraudulent person can give the “encrypted command” containing arbitrary data and obtain a response corresponding to the “encrypted command”. Therefore, secret data and secret algorithms are easier to guess.
[0028]
As described above, according to the present invention, the transmission process of transmitting a predetermined command from the data processing device 100 to the encryption device 200, and the response corresponding to the command from the encryption device 200 to the data processing device 100 are returned. The purpose of the present invention is to improve security in a cryptographic processing system in which information is exchanged between the two by alternately executing a reply process. The point is that, after the arithmetic processing for obtaining the second data 20 is performed inside the encryption device 200, as shown in FIG. , N = 3), and the n blocks 21 to 23 are divided into n responses and sent back to the data processing apparatus 100. That is, conventionally, the second data 20 is returned by the "response to the encrypted command" shown in (b) of FIG. 3B. However, in the present invention, the created response is included in the "response to the encrypted command". The second data 20 is set to include only a part of the second data 20 or not to include the second data 20 at all, and the second data 20 is returned to the dispenser by a plurality of responses.
[0029]
As described above, in the present invention, it is not possible to return the entire second data 20 to the data processing device 100 only with the “response to the encrypted command”, and a plurality of responses are necessarily required. However, in order to obtain a response from the encryption device 200, it is necessary to transmit some command from the data processing device 100. In other words, communication between the reader / writer device and the IC card is always active from the reader / writer device side, that is, a command is transmitted, and a passive reply is sent from the IC card side as a response to this command. Must be returned. Therefore, in the present invention, a "reply request command" for requesting the encryption device 200 (IC card) to return the second data 20 is prepared, and the second reply command is provided as a response to the "reply request command". A part of the data 20 is returned. For example, as shown in FIG. 4, if the second data 20 is divided into three blocks 21 to 23, the first block 21 is returned as a "response to an encrypted command" and the second block 20 is returned. Block 22 is returned as a "response to a reply request command" provided subsequently, and the third block 23 is returned as another "response to a reply request command" provided subsequently. do it.
[0030]
The exchange of the command and the response shown in FIG. 5 is an example in which the second data 20 divided into three is returned as three responses as described above. First, an “encryption command” as shown in (a) in FIG. 5 is given from the data processing device 100 to the encryption device 200. In this example, the “encrypted command” is composed of a command part composed of a command code “CRYPT” and a data part composed of character string data (first data 10) composed of plain text. Such an “encrypted command” is provided from the reader / writer device 120 to the information communication unit 210, and is interpreted by the command interpreting unit 220. Then, the command interpreting unit 220 gives the first data 10 included in the “encrypted command” to the cryptographic operation unit 230 to execute the encryption operation. The second data 20 obtained as a result of the encryption operation is provided to the response returning unit 240. The response returning unit 240 returns the provided second data 20 in one response. Instead, it divides it into a plurality of n blocks, temporarily stores them, and divides them into a plurality of responses to send back a response.
[0031]
In the example shown here, the second data 20 is divided into three blocks 21 to 23 as shown in FIG. 4 and returned in three responses. That is, first, the first block 21 is returned as a "response to the encrypted command", as shown in FIG. This response is composed of a status part composed of a status code “OK” (a code indicating that the given “encrypted command” has been executed without any trouble) and a data part composed of the first block 21. ing. In the sense of the response to the “encrypted command”, the response shown in FIG. 5B is equivalent to the conventional response shown in FIG. 3B, but the conventional response shown in FIG. 5 includes the entirety of the second data 20, whereas the response of the present invention shown in FIG. 5B includes only a part of the second data 20.
[0032]
In the present invention, in order to request a reply for a portion not returned in the “response to the encrypted command”, the data processing device 100 further transmits to the encrypting device 200 as shown in FIG. It is necessary to give a "reply request command". In this example, the "reply request command" is composed of only a command part consisting of a command code of "REPLY", and has no data part. When such a “reply request command” is given to the command interpreting unit 220 via the information communication unit 210, the command interpreting unit 220 performs a process of returning the next block to be returned as a response to the response returning unit 240. Give instructions to do so. As a result, a "response to the reply request command" as shown in (d) of FIG. 5 is returned to the data processing apparatus 100. This response is a response obtained by adding a data part consisting of the second block 22 to a status part consisting of a status code of "OK", indicating that the given "reply request command" has been executed without any trouble. , A response including the second block 22 to be returned. Subsequently, when the data processing apparatus 100 gives the encryption apparatus 200 a "reply request command" (the same command as the command in FIG. 5C) as shown in FIG. , A response as shown in FIG. 5F is returned to the data processing apparatus 100. This response includes a third block 23 to be returned. Thus, all the blocks 21 to 23 are returned to the data processing device 100 by three responses, so that the second data 20 can be obtained by performing a synthesizing process for assembling them. become.
[0033]
As a result, in the case of the above-described example, the second data 20 created in the encryption device 200 is divided into three blocks 21 to 23, each of which is illustrated in FIG. This means that the response was divided into two responses. If such a method is adopted, even if a command / response pair as shown in FIGS. 5 (a) and (b) 方法 is recognized by an unauthorized method such as communication interception, FIG. 5 (a) The first data 10 included in the “encrypted command” shown and the first block 21 included in the response shown in FIG. 5B are incomplete as a plaintext / ciphertext pair. Therefore, it is possible to make it difficult to guess the secret data and the secret algorithm used in the encryption processing in the encryption operation unit 230.
[0034]
Note that when the “reply request command” is given, but there is no block to be returned in the response reply unit 240 (for example, the “reply request command” is given before the “encrypted command” is given). Or if all blocks have been replied and a "reply request command" has been given), the "reply request command" is displayed in the status section. A response in which a status indicating an error is written is returned.
[0035]
After all, in the cryptographic processing system according to the present invention, the following processing is performed in the data processing device 100 and the encryption device 200 in order to obtain the second data 20 obtained by encrypting the first data 10. Will be. Here, for convenience of explanation, the processing on the data processing apparatus 100 side will be referred to as “active processing”, and the processing on the encryption apparatus 200 side will be referred to as “passive processing”.
[0036]
First, the following processing is performed on the data processing device 100 side. First, an “encryption command” including the first data to be encrypted is transmitted to the encryption device 200, and a response is returned from the encryption device 200 in response to the “encryption command”. One active process is performed. That is, the first active process is a process of transmitting an “encrypted command” as shown in FIG. 5A and receiving a response as shown in FIG. 5B returned in response thereto. It turns out that. Subsequently, a “reply request command” for requesting a return of the second data is transmitted to the encryption device 200, and a second response is received from the encryption device 200 in response thereto. Active processing is performed. This second active process is a process of transmitting a “reply request command” as shown in FIG. 5C and receiving a response as shown in FIG. become. In the case of the example shown in FIG. 5, such second active processing is performed once again. When all blocks constituting the second data 20 are returned in this way, the data processing device 100 finally assembles the second data 10 by synthesizing the data included in the plurality of received responses. Perform synthesis processing. That is, in the case of the example shown in FIG. 5, the combining process for obtaining the second data 20 is performed by assembling the three blocks 21 to 23 included in the three responses.
[0037]
Note that the first active process and the second active process described above do not necessarily need to be executed consecutively, and another process (a command is transmitted from the data processing apparatus 100 side, and (A process of receiving some response) according to the request. Also, when the second active process is repeatedly executed, another process may be interposed between the processes. Of course, the command transmission operation to the encryption device 200 is not performed based on the direct instruction of the user, but is performed based on the instruction of the program executed on the computer 110 configuring the data processing device 100. Will be. Therefore, the procedure of the first active process and the second active process described above is described in the program executed on the computer 110.
[0038]
On the other hand, on the encryption device 200 side, every time an individual command is given, a predetermined process according to the content of the command is executed, and a process of returning a predetermined response is executed. Specifically, first, when the above-mentioned “encrypted command” is transmitted, by performing an operation based on a secret algorithm on the first data 10 included in the command, the first A first passive process is performed in which the second data 20 corresponding to the first data 10 is created, and a predetermined response including only a part thereof is returned as a response corresponding to the “encrypted command”. That is, in the first passive process, an “encryption command” including the first data 10 is transmitted from the data processing device 100 to the encryption device 200 as shown in FIG. In this case, the second data 20 is created based on the first data 10, and a response including only a part of the second data 20 (first block 21) as shown in FIG. Is returned to the data processing apparatus 100. However, in the example shown in FIG. 5, the response to the “encrypted command” includes the first block 21 which is a part of the second data 20, but the response to the “encrypted command” May not include the second data 20 at all. In this case, the data portion of the response shown in (b) of FIG. 5 may be left empty, for example, and each block constituting the second data 20 is returned as a response to the “reply request command”. Will be.
[0039]
When a “reply request command” is transmitted to the encryption device 200, a second response created in the past and stored in the response reply unit 240 as a response to the “reply request command” is received. A second passive process of returning a predetermined response including a part of the data (a part that has not been returned yet and remains) is performed. That is, the second passive process is a process of returning a response as shown in FIGS. 5 (d) and (f) in response to a “reply request command” as shown in FIGS. 5 (c) and 5 (e). It can be said. A block to be returned is temporarily stored in the response reply unit 240. Each time a “reply request command” is given, a process of returning a block in the response to include the next block to be returned next is performed. Done. As described above, if there is no block to be returned in the response reply unit 240 despite the fact that the “reply request command” has been transmitted, a response indicating an error is returned. Will be.
[0040]
Of course, the first passive process and the second passive process are actually executed by the CPU in the IC card constituting the encryption device 200 based on a program stored in advance in a ROM, an EEPROM, or the like. Processing. Therefore, the procedure of the first passive processing and the second passive processing described above is described in the program executed on the IC card.
[0041]
§2. Other embodiments
Having described the basic embodiment of the present invention, some useful alternative embodiments will now be described. First, in the present invention, as described above, the second data 20 created on the encryption device 200 side is divided into a plurality of n blocks. Preferably, n and the data length of each block are randomly determined each time on the encryption device 200 side. Further, the encryption device 200 performs a process of randomly changing the order of each of the n blocks, and includes each of the n blocks in an individual response in the order after the replacement so as to be included in the data processing device 100. It is preferable to perform a process of replying to.
[0042]
For example, let us consider a case where the second data 20 is divided into three blocks 21, 22, and 23 on the encryption device 200 side as shown in FIG. Here, the division number n = 3 is determined at random using random numbers, and the data lengths L1 to L3 of the blocks 21 to 23 are also determined at random using random numbers. Then, the order of these three blocks is changed as shown in FIG. Such replacement of the block order is also determined at random using random numbers. In this way, as shown in FIG. 6B, when the order of the blocks is randomly changed, these three blocks are included in individual responses in the order after the replacement and sent back. That is, in the example of FIG. 6B, in the first response to which a block is to be returned, the third block 23 is returned, in the second response, the first block 21 is returned, and the third response is returned. Then, the second block 22 is returned.
[0043]
As described above, when the encryption apparatus 200 side randomly determines the number of divisions n, the data length of each block, and the order of the blocks after the replacement, the data processing apparatus 100 also notifies the data processing apparatus 100 of the information. Need to be kept. For this purpose, such information may be included in any response given from the encryption device 200 to the data processing device 100. In particular, it is preferable to include information on the number of divisions n in a response to the “encrypted command”. Then, the data processing apparatus 100 can recognize the number of divisions n by the response to the “encryption command”, so that the number of times the “reply request command” is given thereafter will return all the blocks. It is possible to perform the process of giving the “reply request command” as many times as necessary. However, if the total data length of the second data 20 can be determined in advance, the data processing apparatus 100 repeatedly repeats the “reply request” until the cumulative value of the data length of the returned block reaches the total data length. Since the command may be given, transmitting information on the number of divisions n and data on the data length of each block to the data processing device 100 is not an essential item in practicing the present invention.
[0044]
FIG. 7 is a diagram showing exchange of commands and responses according to another embodiment of the present invention. The “encryption command” shown in (a) of FIG. 7 is a command for requesting an encryption process on the first data 10, just like the “encryption command” of (a) in FIG. On the other hand, in this embodiment, the response to this command is as shown in FIG. This response is composed of a status part consisting of a status code "OK" and a data part as shown. The data section includes information indicating the number of divisions n, block order, and block length. That is, in the illustrated example, the division number n is “3”, the block order is “3 → 1 → 2 (meaning that the third block → the first block → the second block is returned in order)”, and the block length Is "L3, L1, L2 (the block length of the third block is L3, the block length of the first block is L1, and the block length of the second block is L2, according to the block order)." Included in the Department.
[0045]
In addition, dummy data is added to the data portion of the response shown in FIG. This dummy data is any meaningless data irrelevant to the second data 20 created in the encryption device 200. Such addition of dummy data is effective in improving security against wiretapping. That is, even when a command / response pair as shown in FIGS. 7A and 7B is intercepted by unauthorized means, the presence of the dummy data makes it more difficult to analyze the correspondence between the two. .
[0046]
The data processing device 100 receives the response as shown in FIG. 7 (b) {circle around (2)}, and returns the second data 20 divided into three blocks, in the block order of “3 → 1 → 2”. And that the data length of each block is “L3, L1, L2”. As a result, it can be recognized that three "reply request commands" are necessary, and the first "reply request command" is transmitted as shown in (c) of FIG. The data portion of the “reply request command” is originally unnecessary, but in the example shown in FIG. 7C, the meaningless dummy data is included in the data portion of the “reply request command”. I have to. This is a consideration to make it more difficult to analyze the correspondence between the command / response pair and the command / response pair even if the command / response pair is intercepted by illegal means due to the presence of the dummy data.
[0047]
In this example, a response as shown in FIG. 7D is returned as a response to the "reply request command" shown in FIG. 7C. This response is composed of a status part consisting of a status code "OK" and a data part as shown. The data section includes a third block corresponding to the first order and dummy data added for improving security. Since information on the block length of each block has already been transmitted to the data processing device 100, it is possible to distinguish the original block data from the dummy data. For example, in the data portion as shown in FIG. 7D, the portion from the beginning to the portion corresponding to the data length L3 is the data constituting the third block, and the portion following this is dummy data. Can be recognized. Similarly, two more “reply request commands” are transmitted, and in response to this, responses are respectively returned, and all three blocks are returned to the data processing device 100 side. The data processing device 100 can perform the combining process of rearranging and assembling the three returned blocks based on the information in the block order “3 → 1 → 2”, and finally obtain the second data 20. .
[0048]
As described above, the plaintext data prepared in the data processing device 100 is given to the encryption device 200 as the first data 10, and the second data 20 constituting the ciphertext data corresponding to the plaintext data is created. Although the example in which the response is divided and returned is described, the cryptographic processing system according to the present invention is not necessarily limited to the use of converting the plaintext data into the ciphertext data. For example, the data processing device 100 is provided with a function of preparing, as the first data 10, predetermined message data to be subjected to a digital signature for personal authentication, and the encryption device 200 performs an encryption process on the message data. Accordingly, an operation for creating a predetermined digital signature may be performed, and the second data 20 including the digital signature may be returned as a plurality of responses. In this case, the data processing device 100 treats the obtained second data as a digital signature for personal authentication of the message data constituting the first data.
[0049]
FIG. 8 is a diagram showing a specific example of such a digital signature. Here, a specific example will be described in which a specific user named “Taro Taro” accesses a specific Web site using the computer 110 and places an order for an encyclopedia at an online bookstore operated by the Web site. . First, in order to make such an order, the user “Taro Tokkyo” inputs, to the computer 110, message data M (data consisting of a character string “I will pay attention to a set of encyclopedias”) as shown in FIG. I do. Then, the message data M is transmitted as the first data 10 to the information communication unit 210 via the reader / writer device 120, and is provided to the cryptographic operation unit 230. Here, the secret data H as shown in FIG. 8 (in this example, a character string "ABC123" for convenience) is stored in the cryptographic operation unit 230 in the IC card possessed by the user "Tokutaro". Let's say that was stored. The secret data H is written by a predetermined method at the issuer when this IC card is issued to the user “Taro Tokkyo”.
[0050]
In this case, the cryptographic operation unit 230 performs a predetermined operation using the secret data H on the message data M based on a predetermined algorithm prepared in advance, and performs a digital operation for personal authentication on the message data M. Create signature D. Here, it is assumed that, for example, a digital signature D as shown in FIG. 8 (in this example, for convenience, the numerical value is “456789”) is created. As a specific algorithm for creating a digital signature, for example, “a character string constituting the secret data H is added to a character string constituting the message data M, and these character strings are converted into hexadecimal numbers to be digitized. A hash value obtained by applying a hash function to this numerical value is used as a digital signature. " A hash value obtained by applying a hash function to a certain original numerical value is uniquely determined. However, since the original numerical value cannot be calculated back from the hash value, the message data M and the secret data H are given. For example, the digital signature D given as a hash value can be uniquely obtained by the cryptographic operation unit 230. Conversely, even if the digital signature D and the message data M are known, the secret data H Can not be asked. Therefore, the digital signature D can be said to be data obtained by encrypting the message data M.
[0051]
In this way, the digital signature D composed of the numerical value “456789” created by the cryptographic operation unit 230 is temporarily stored in the response returning unit 240, and is divided into a plurality of responses and transmitted to the reader / writer device 120 side. Will be replied. For example, the numerical value “456789” is divided into three blocks “45”, “67”, and “89”, and returned as three responses. The computer 110 restores the digital signature D of “456789” by combining them. Thus, the computer 110 sends the digital signature D together with the message data M to the online bookstore site as an order from the user "Taro Tatoshi", and places an order for the encyclopedia.
[0052]
On the other hand, the secret data H stored in the cryptographic operation unit 230 is also registered as a secret data for personal authentication of the user "Taro Tatoshi" at a trusted certificate authority. Therefore, the online bookstore that has received the message data M “Encyclopedia will be ordered.” And the digital signature D “456789” as an order from the user “Patent Taro” refers to the certificate authority. This makes it possible to confirm that the combination of the message data M and the digital signature D is actually transmitted from “Taro Tokkyo”. That is, the certificate authority uses the message data M “Encyclopedia order is placed” and the data “ABC123” registered as the secret data H of Taro Patent by using a predetermined algorithm (the cryptographic operation unit 230). If the same digital signature D of “456789” is obtained, the message data M of “I will order a complete encyclopedia” and the message data M of “456789” are obtained. It will be confirmed that the combination with the digital signature D is certainly transmitted by the user "Taro Tokkyo". Of course, if a part of the message data M is falsified, the obtained digital signature will be different, so that a correct authentication result cannot be obtained.
[0053]
FIG. 9 is a block diagram showing still another embodiment of the present invention. In the basic embodiment shown in FIG. 1, the data processing device 100 is configured by the computer 110 and the reader / writer device 120, and the encryption device 200 is configured by an IC card. On the other hand, the embodiment shown in FIG. 9 is a mode in which the data processing device and the encryption device communicate via the Internet 300. That is, in this embodiment, the entire components of the client computer 310, the reader / writer device 320 connected thereto, and the IC card 330 connected thereto function as an encryption device, and the server computer 340 functions as a data processing device. Will do. The client computer 310 and the server computer 340 are connected via the Internet 300. When a predetermined command is given from the server computer 340 to the client computer 310, the command is executed on the client computer 310 side ( If necessary, the IC card 330 is accessed via the reader / writer device 320). Then, the execution result of the command is returned as a response to the server computer 340 via the Internet 300.
[0054]
Specifically, when an “encryption command” including the first data 10 is given from the server computer 340 to the client computer 310, the “encryption command” is transmitted to the IC card 330 via the reader / writer device 320. And the second data 20 is created. The second data 20 is transmitted to the client computer 310 via the reader / writer device 320. The second data 20 is transmitted as a response from the client computer 310 to the server computer 340 via the Internet 300. At this time, the second data 20 is divided into a plurality of n blocks. Is transmitted to the server computer 340 side in a plurality of times. Therefore, even if an unauthorized interception is performed on the Internet 300, a higher security effect can be obtained as compared with a normal method.
[0055]
Of course, it is also possible to implement the present invention using the client computer 310 and the reader / writer device 320 shown in FIG. 9 as data processing devices and the IC card 330 shown in FIG. 9 as an encryption device. In the mode shown in FIG. 9, the present invention can be applied to a so-called "nested type". That is, when the present invention is implemented by using the client computer 310 and the reader / writer device 320 as a data processing device and the IC card 330 as an encryption device, security against interception between the reader / writer device 320 and the IC card 330 can be improved. Can be improved. On the other hand, when the present invention is implemented by using the entire components of the client computer 310, the reader / writer device 320, and the IC card 330 as an encryption device and the server computer 340 as a data processing device, security against interception on the Internet 300 Can be improved.
[0056]
As described above, the present invention has been described based on some embodiments. However, the present invention is not limited to these embodiments, and can be implemented in various other modes. For example, in the above-described embodiment, when the second data 20 is divided into a plurality of blocks, a division mode is adopted in which a set of data is divided into one block. Such a form may be adopted. For example, data extracted every third byte, such as the first byte, the fourth byte, the seventh byte,..., Is set as a first block, and the second byte, the fifth byte, the eighth byte,. The data extracted every other byte is a second block, and the data extracted every third byte is a third block, such as a third byte, a sixth byte, a ninth byte, and so on. It is also possible.
[0057]
【The invention's effect】
As described above, according to the cryptographic processing system of the present invention, the correspondence between the data to be encrypted and the encrypted data reduces the probability of being intercepted by an unauthorized method, and further improves security. It becomes possible to do.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a basic configuration of a cryptographic processing system according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating a concept of a general encryption process.
FIG. 3 is a diagram showing an example of a command / response used for performing encryption in a conventional cryptographic processing system.
FIG. 4 is a diagram showing an example of a mode of dividing character string data obtained by encryption in the present invention.
FIG. 5 is a diagram showing an example of a command / response used for performing encryption in the cryptographic processing system according to the present invention.
FIG. 6 is a diagram showing an example of a mode in which character string data obtained by encryption is divided and the order is further changed in the present invention.
FIG. 7 is a diagram showing another example of a command / response used for performing encryption in the cryptographic processing system according to the present invention.
FIG. 8 is a diagram showing a specific example of message data M, secret data H, and digital signature D used in a general digital signature system.
FIG. 9 is a block diagram illustrating a basic configuration of a cryptographic processing system according to a modification of the present invention.
[Explanation of symbols]
10: First data (character string data composed of plain text)
20: second data (character string data composed of cipher text)
21 to 23 individual blocks obtained by division
100 ... data processing device
110 ... Computer
120: Reader / writer device
200: Encryption device (IC card)
210: Information communication section
220 command interpreter
230 ... Cryptographic operation unit
240 ... Response reply unit
300 Internet
310 ... Client computer
320: Reader / writer device
330… IC card
340: Server computer
D: Digital signature
H: Secret data
L1 to L3: Data length of each block
M: Message data

Claims (15)

暗号化処理の対象となる第1のデータに基いて、秘密のアルゴリズムを用いた暗号化演算を行うことにより、第2のデータを作成する処理を行う暗号処理システムであって、
内部に前記秘密のアルゴリズムを記憶し、外部から与えられた第1のデータに対して前記秘密のアルゴリズムに基づく演算を実行することにより、当該第1のデータに対応した第2のデータを作成する機能をもった暗号化装置と、
前記暗号化装置に接続することができ、暗号化処理の対象となる第1のデータを用意する機能と、用意した第1のデータを前記暗号化装置に送信する機能と、前記暗号化装置の内部で作成された第2のデータを受信する機能と、を有するデータ処理装置と、
を備え、
前記暗号化装置と前記データ処理装置との間の情報のやりとりは、前記データ処理装置から前記暗号化装置に対して所定のコマンドを送信する送信処理と、前記暗号化装置から前記データ処理装置に対してコマンドに応じたレスポンスを返信する返信処理と、を交互に実行することによりなされるように構成されており、
前記データ処理装置は、暗号化処理の対象となる第1のデータを含んだ「暗号化コマンド」を前記暗号化装置に対して送信し、これに応じて前記暗号化装置から返信されてくるレスポンスを受信する第1の能動処理と、第2のデータの返信を要求するための「返信要求コマンド」を前記暗号化装置に対して送信し、これに応じて前記暗号化装置から返信されてくるレスポンスを受信する第2の能動処理と、受信した複数のレスポンスに含まれているデータを合成することにより第2のデータを組み立てる合成処理と、を行う機能を有し、
前記暗号化装置は、前記「暗号化コマンド」が送信されてきたときに、当該コマンドに含まれている第1のデータに対して前記秘密のアルゴリズムに基づく演算を実行することにより、当該第1のデータに対応した第2のデータを作成し、当該「暗号化コマンド」に応じたレスポンスとして、作成した前記第2のデータを全く含まないかあるいはその一部のみを含む所定のレスポンスを返信する第1の受動処理と、前記「返信要求コマンド」が送信されてきたときに、当該「返信要求コマンド」に応じたレスポンスとして、作成した前記第2のデータの一部のみを含む所定のレスポンスを返信する第2の受動処理と、を行う機能を有することを特徴とする暗号処理システム。
An encryption processing system that performs a process of creating second data by performing an encryption operation using a secret algorithm based on the first data to be encrypted.
The secret algorithm is stored inside, and an operation based on the secret algorithm is performed on first data given from the outside, thereby creating second data corresponding to the first data. An encryption device with functions,
A function of preparing first data that can be connected to the encryption device and to be subjected to encryption processing, a function of transmitting the prepared first data to the encryption device, A data processing device having a function of receiving internally generated second data;
With
The exchange of information between the encryption device and the data processing device includes a transmission process of transmitting a predetermined command from the data processing device to the encryption device, and a transmission process from the encryption device to the data processing device. And a reply process for returning a response corresponding to the command, and are alternately performed.
The data processing device transmits an “encryption command” including the first data to be encrypted to the encryption device, and a response returned from the encryption device in response to the “encryption command”. And a "reply request command" for requesting a return of the second data is transmitted to the encryption device, and the response is returned from the encryption device accordingly. A function of performing a second active process of receiving a response and a combining process of assembling second data by combining data included in the plurality of received responses;
When the “encryption command” is transmitted, the encryption device performs an operation based on the secret algorithm on the first data included in the command, thereby performing the first encryption. The second data corresponding to the above-mentioned data is created, and a predetermined response containing no or only a part of the created second data is returned as a response to the “encryption command”. A first passive process and, when the “reply request command” is transmitted, a predetermined response including only a part of the created second data as a response corresponding to the “reply request command”. And a second passive process for returning a reply.
請求項1に記載の暗号処理システムにおいて、
データ処理装置が、第1のデータとして、暗号化処理の対象となる平文データを用意する機能を有し、合成処理により得られた第2のデータを、前記平文データに対する暗号文データとして取り扱う機能を有することを特徴とする暗号処理システム。
The cryptographic processing system according to claim 1,
A data processing device having a function of preparing plaintext data to be encrypted as first data, and a function of treating second data obtained by the combining process as ciphertext data for the plaintext data A cryptographic processing system comprising:
請求項1に記載の暗号処理システムにおいて、
データ処理装置が、第1のデータとして、デジタル署名の対象となる所定のメッセージデータを用意する機能を有し、合成処理により得られた第2のデータを、前記メッセージデータに対する個人認証用のデジタル署名として取り扱う機能を有することを特徴とする暗号処理システム。
The cryptographic processing system according to claim 1,
The data processing device has a function of preparing predetermined message data to be subjected to a digital signature as the first data, and converts the second data obtained by the synthesizing process into a digital for personal authentication of the message data. An encryption processing system having a function of handling as a signature.
請求項1〜3のいずれかに記載の暗号処理システムにおいて、
ICカードを暗号化装置として用い、当該ICカードにアクセスする機能をもったリーダライタ装置およびこのリーダライタ装置を制御するためのコンピュータをデータ処理装置として用いたことを特徴とする暗号処理システム。
The cryptographic processing system according to claim 1,
An encryption processing system using an IC card as an encryption device and a reader / writer device having a function of accessing the IC card and a computer for controlling the reader / writer device as a data processing device.
請求項1〜3のいずれかに記載の暗号処理システムにおいて、
クライアントコンピュータを暗号化装置として用い、このクライアントコンピュータにインターネットを介して接続されたサーバコンピュータをデータ処理装置として用いたことを特徴とする暗号処理システム。
The cryptographic processing system according to claim 1,
An encryption processing system, wherein a client computer is used as an encryption device, and a server computer connected to the client computer via the Internet is used as a data processing device.
請求項1〜5のいずれかに記載の暗号処理システムにおいて、
暗号化装置が、作成した第2のデータを複数n個のブロックに分割し、n個の各ブロックをn回のレスポンスに分けてデータ処理装置に返信する処理を行うことを特徴とする暗号処理システム。
The cryptographic processing system according to any one of claims 1 to 5,
An encryption device that divides the created second data into a plurality of n blocks and divides each of the n blocks into n times responses and returns the response to the data processing device. system.
請求項6に記載の暗号処理システムにおいて、
暗号化装置が、ブロックの分割数nおよび各ブロックのデータ長を、ランダムに決定することを特徴とする暗号処理システム。
The cryptographic processing system according to claim 6,
An encryption processing system, wherein an encryption device randomly determines a block division number n and a data length of each block.
請求項7に記載の暗号処理システムにおいて、
暗号化装置が、ランダムに決定した分割数nおよび各ブロックのデータ長を示す情報を、いずれかのレスポンスに含ませてデータ処理装置に返信する機能を有し、
データ処理装置が、前記情報に基いて第2のデータの入手を行う機能を有することを特徴とする暗号処理システム。
The cryptographic processing system according to claim 7,
The encryption device has a function of returning information to the data processing device by including information indicating the randomly determined number of divisions n and the data length of each block in one of the responses,
An encryption processing system, wherein the data processing device has a function of obtaining the second data based on the information.
請求項6〜8のいずれかに記載の暗号処理システムにおいて、
暗号化装置が、n個の各ブロックの順序をランダムに入れ替える処理を行い、このn個の各ブロックを、入れ替えた後の順序で、個々のレスポンスに含ませてデータ処理装置に返信する処理を行う機能を有し、かつ、入れ替えた後のブロック順を示す情報を、いずれかのレスポンスに含ませてデータ処理装置に返信する機能を有し、
データ処理装置が、前記情報に基いて第2のデータの組み立てを行う機能を有することを特徴とする暗号処理システム。
The cryptographic processing system according to any one of claims 6 to 8,
The encryption device performs a process of randomly changing the order of each of the n blocks, and includes a process of returning the data to the data processing device by including each of the n blocks in an individual response in the changed order. Has a function of performing, and having a function of returning information to the data processing device by including information indicating the block order after the replacement in one of the responses,
A cryptographic processing system, wherein the data processing device has a function of assembling second data based on the information.
請求項8または9に記載の暗号処理システムにおいて、
暗号化装置が、分割数nを示す情報、各ブロックのデータ長を示す情報、入れ替えた後のブロック順を示す情報の少なくとも1つを、「暗号化コマンド」に応じたレスポンスに含ませて返信することを特徴とする暗号処理システム。
The cryptographic processing system according to claim 8, wherein
The encryption device returns at least one of the information indicating the number of divisions n, the information indicating the data length of each block, and the information indicating the order of the blocks after the replacement in a response corresponding to the “encryption command”. And a cryptographic processing system.
請求項1〜10のいずれかに記載の暗号処理システムにおいて、
暗号化装置が、第1の受動処理として返信する「暗号化コマンドに応じたレスポンス」または第2の受動処理として返信する「返信要求コマンドに応じたレスポンス」に、作成した第2のデータとは無関係なダミーデータを含ませることを特徴とする暗号処理システム。
The cryptographic processing system according to claim 1,
The second data created by the encryption device in the “response corresponding to the encrypted command” returned as the first passive process or the “response corresponding to the return request command” returned as the second passive process is as follows. A cryptographic processing system characterized by including irrelevant dummy data.
請求項1〜11のいずれかに記載の暗号処理システムにおいて、
データ処理装置が、第2の能動処理として送信する「返信要求コマンド」に、意味のないダミーデータを含ませることを特徴とする暗号処理システム。
The cryptographic processing system according to any one of claims 1 to 11,
An encryption processing system characterized in that meaningless dummy data is included in a "reply request command" transmitted as a second active process by a data processing device.
請求項1〜12のいずれかに記載の暗号処理システムの一構成要素をなすデータ処理装置。A data processing device which is a component of the cryptographic processing system according to claim 1. コンピュータを請求項13に記載のデータ処理装置として機能させるためのプログラムおよび当該プログラムが記録されたコンピュータ読取り可能な記録媒体。A program for causing a computer to function as the data processing device according to claim 13, and a computer-readable recording medium on which the program is recorded. 請求項1〜12のいずれかに記載の暗号処理システムの一構成要素をなす暗号化装置。An encryption device which is a component of the cryptographic processing system according to claim 1.
JP2002197068A 2002-07-05 2002-07-05 Cryptographic processing system Expired - Fee Related JP4183986B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002197068A JP4183986B2 (en) 2002-07-05 2002-07-05 Cryptographic processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002197068A JP4183986B2 (en) 2002-07-05 2002-07-05 Cryptographic processing system

Publications (2)

Publication Number Publication Date
JP2004040622A true JP2004040622A (en) 2004-02-05
JP4183986B2 JP4183986B2 (en) 2008-11-19

Family

ID=31704931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002197068A Expired - Fee Related JP4183986B2 (en) 2002-07-05 2002-07-05 Cryptographic processing system

Country Status (1)

Country Link
JP (1) JP4183986B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011088330A (en) * 2009-10-21 2011-05-06 Dainippon Printing Co Ltd Label printing system
JP2012243047A (en) * 2011-05-19 2012-12-10 Mega Chips Corp Computer system and semiconductor memory
JP2014018319A (en) * 2012-07-13 2014-02-03 Olympia:Kk Game machine

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011088330A (en) * 2009-10-21 2011-05-06 Dainippon Printing Co Ltd Label printing system
JP2012243047A (en) * 2011-05-19 2012-12-10 Mega Chips Corp Computer system and semiconductor memory
JP2014018319A (en) * 2012-07-13 2014-02-03 Olympia:Kk Game machine

Also Published As

Publication number Publication date
JP4183986B2 (en) 2008-11-19

Similar Documents

Publication Publication Date Title
TWI288552B (en) Method for implementing new password and computer readable medium for performing the method
JP5006817B2 (en) Authentication information generation system, authentication information generation method, client device, and program
JP2009540703A (en) Method and apparatus for providing low complexity device authentication and confidentiality
JP2008269610A (en) Protecting sensitive data intended for remote application
JP2009272737A (en) Secret authentication system
JP4794970B2 (en) Secret information protection method and communication apparatus
Alamer et al. Prototype device with lightweight protocol for secure RFID communication without reliable connectivity
JP4058039B2 (en) Online PIN verification using polynomials
JP4657706B2 (en) Authority management system, authentication server, authority management method, and authority management program
CN100561913C (en) A kind of method of access code equipment
WO2011058629A1 (en) Information management system
KR100720738B1 (en) A method for providing secrecy, authentication and integrity of information to RFID tag
JP4220671B2 (en) Encrypted data communication method, encrypted data generation system and recording medium therefor
JP2000078128A (en) Communication system, ic card and recording medium
JP2004040622A (en) Encryption processing system
RU2470470C2 (en) Protecting execution of cryptographic computation
JP2005065035A (en) Substitute person authentication system using ic card
JP4140617B2 (en) Authentication system using authentication recording medium and method of creating authentication recording medium
Abdulsalam et al. Enhanced tiny encryption algorithm for secure electronic health authentication system
Chiu et al. A practical attack on patched MIFARE Classic
JP4475576B2 (en) Network printing system, print data exchange method, and server computer program
JP2006018583A (en) Image forming method, program for requesting secret printing, program for secret printing, recording medium, and smart card
TWM551721U (en) Login system implemented along with a mobile device without password
WO2024014017A1 (en) Message presentation system, presentation device, and message presentation method
JP4183982B2 (en) Digital signature system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080415

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080613

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: 20080902

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: 20080903

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110912

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4183986

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110912

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120912

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120912

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130912

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees