JPH1063580A - Icカード - Google Patents

Icカード

Info

Publication number
JPH1063580A
JPH1063580A JP8224950A JP22495096A JPH1063580A JP H1063580 A JPH1063580 A JP H1063580A JP 8224950 A JP8224950 A JP 8224950A JP 22495096 A JP22495096 A JP 22495096A JP H1063580 A JPH1063580 A JP H1063580A
Authority
JP
Japan
Prior art keywords
card
memory
data
stored
value
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
JP8224950A
Other languages
English (en)
Other versions
JP4021956B2 (ja
Inventor
Kazuyoshi Irisawa
和義 入澤
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 JP22495096A priority Critical patent/JP4021956B2/ja
Publication of JPH1063580A publication Critical patent/JPH1063580A/ja
Application granted granted Critical
Publication of JP4021956B2 publication Critical patent/JP4021956B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

(57)【要約】 【課題】 データの暗号化、復号化を迅速に実行するこ
とが可能なICカードを提供する。 【解決手段】 CPUと、メモリとを備え、前記メモリ
に保存している鍵情報を用いて、外部より取得したデー
タ又は前記メモリに保存しているデータを暗号化又は復
号化するデータ変換プログラムを有し、外部からの命令
に従い、前記データを暗号化又は復号化するICカード
において、前記データ変換プログラムは、暗号化又は復
号化すべき前記データの内容に依存しない処理を行う前
処理部、及び、前記データの内容に依存する処理を行う
主要処理部とを有し、前記鍵情報を前記メモリに保存す
る場合には、前記前処理部を実行し、その結果取得され
た前処理値を前記鍵情報に関連づけて前記メモリに保存
することを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、外部より与えられ
たデータ又はその内部に有するデータを暗号化又は復号
化することが可能なICカードに関するものである。
【0002】
【従来の技術】ICカードは、磁気カードに代わる新し
い情報記憶媒体として、近年注目を集めている。特に、
CPUを内蔵したICカードは、高度なセキュリティを
実現できることから、高度情報化社会の種々の分野にお
いて利用されることが期待されている。一般にICカー
ドは、ROM、RAM、EEPROMの3種類のメモリ
と、それらメモリにアクセスするCPUとを備えてい
る。EEPROMは、書き換え可能な不揮発性メモリで
あり、ICカードユーザに関する個人情報等のデータが
保存される。RAMは、CPUがプログラムを実行する
ときに作業領域として使用する揮発性のメモリである。
ROMは、読み出し専用メモリであり、CPUが実行す
べき処理を示すプログラムが格納されている。また、外
部との通信のためのI/O端子を備えている。
【0003】ICカードを使用するときは、ICカード
をリーダ・ライタに接続し、リーダ・ライタからコマン
ドをI/O端子を介してICカードに送信する。コマン
ドを受信したICカードでは、CPUが、ROMに格納
されているプログラムのうち、コマンドに対応する部分
を実行する。この結果、コマンドの処理がなされ、EE
PROMに新たなデータを書き込むなどの処理が行われ
る。
【0004】一般にICカードは、リーダ・ライタとの
間でデータを暗号化して送受信する。これは、リーダ・
ライタとICカードとの間の通信信号を第三者が不正に
取得し、データの内容を盗むことを防止するためにであ
る。データの暗号化の方法としては、例えばRSAがあ
る。RSAとは、非対称キー(非対称鍵)方式による暗
号化方法の一種であり、複数の通信相手に共通に公開す
る「公開キー」と、その公開キーとは異なるICカード
専用の「秘密キー」とを用いてデータを暗号化又は復号
化することを特徴とするものである。つまり、RSAに
よる暗号化では、例えば誰でも知りうる公開キーでデー
タを暗号化し、唯一カードが持つ秘密キーを用いてその
データの復号化を行うのである。
【0005】この点においてRSAは、DES等の対称
キー方式の暗号化方法と相違している。対称キー方式の
暗号化方法では、ICカードと通信相手とは、互いに共
通な暗号キーを予め分かち合わねばならい。このため
に、不特定多数の相手と暗号通信を行う場合は、多数の
キーの受渡し管理が通信相手の数だけ必要となり、管理
が大変煩雑となる。これに対してRSAでは、暗号通信
の際に必要なキーデータを予め分かち合うのではなく、
第三者が公開されている公開キーのみを使用して暗号文
の生成又は復号化を行うことが可能となっている。つま
り、RSAは、キーの受渡し管理を必要とせず、不特定
多数の通信相手が存在する暗号通信に適している。
【0006】図11は、リーダ・ライタ等の外部機器に
おいて、RSAによりデータを暗号化し、得られた暗号
文をICカードへ送信する場合を示した概念図である。
また、図12は、RSAによる平文の暗号化、又は、暗
号文の復号化の処理手順を示す流れ図である。図11に
示すように、外部機器は、ICカードに送信すべきデー
タの平文Xを暗号キーe、Nを用いて暗号化する。すな
わち、図12(a)に示されるように、外部機器には、
はじめに平文X及び暗号化キーe、Nが入力される(S
1202)。次に、平文Xについて、次式(1)の計算
が実行される。 C=X^e mod N ・・・ (1) ここで、「X^e」はXのe乗を意味する。S1202
の処理の結果、暗号文Cが取得され、それが出力される
(S1206)。
【0007】取得された暗号文Cは、ICカードに送信
される(図11参照)。ICカードは、受信した暗号文
Cを秘密キーdと公開キーNを用いて、式(2)を計算
することにより復号化する(図12(b)、S121
2、S1214)。 X=C^d mod N ・・・ (2) 上記の計算を実行した結果、ICカードは、平文Xを取
得し、これを例えばEEPROMに書き込み保存する。
【0008】
【発明が解決しようとする課題】しかし、前述した従来
のICカードは、RAM、ROM、EEPROM等のメ
モリ容量が小さく、また、CPUのデータ処理速度も小
さい。このような問題に対し、ICカードに高速演算コ
プロセッサを搭載し、そのデータ処理速度を向上させる
ことも可能ではあるが、この場合にも、ICカードの動
作速度は、汎用のコンピュータ等と比較して極めて遅
い。一方、図12のS1204、S1214において行
われる式(1)、式(2)の計算は、べき乗剰余の計算
を含むために、多大の時間を必要とする。特に、X、
C、d、e、Nの各変数は、一般に512ビットから構
成されるデータであるので、計算の負担は大きい。式
(1)等を計算するためには、通常、図13に示すMo
ngomery法等の計算アルゴリズムを用い、計算の
高速化が図られる。しかしながら、計算の高速化には限
界があり、ICカード内でのデータの暗号化又は復号化
が迅速に行えないという問題があった。
【0009】そこで、本発明の課題は、データの暗号
化、復号化を迅速に実行することが可能なICカードを
提供することである。
【0010】
【課題を解決するための手段】前記課題を解決するため
に、請求項1に係る発明は、CPUと、前記CPUが実
行可能なプログラム及び前記CPUがアクセス可能なデ
ータを保存するメモリとを備え、前記メモリに保存して
いる鍵情報を用いて、外部より取得したデータ又は前記
メモリに保存しているデータを暗号化又は復号化するデ
ータ変換プログラムを有し、外部からの命令に従い、前
記データを暗号化又は復号化するICカードにおいて、
前記データ変換プログラムは、暗号化又は復号化すべき
前記データの内容に依存しない処理を行う前処理部、及
び、前記データの内容に依存する処理を行う主要処理部
とを有し、前記鍵情報を前記メモリに保存する場合に
は、前記前処理部を実行し、その結果取得された前処理
値を前記鍵情報に関連づけて前記メモリに保存すること
を特徴とする。
【0011】請求項2に係る発明は、請求項1に記載の
ICカードにおいて、前記鍵情報を前記メモリに保存す
る場合に、前記前処理値を保存するか否かを外部からの
命令により選択可能であることを特徴とする。請求項3
に係る発明は、請求項2に記載のICカードにおいて、
前記鍵情報とともに前記前処理値を前記メモリに保存す
ることを命ずる第1の命令と、前記鍵情報のみを前記メ
モリに保存することを命ずる第2の命令とのいずれか一
方を選択して外部より与えることにより、前記前処理値
を保存するか否かが選択可能であることを特徴とする。
【0012】請求項4に係る発明は、請求項2に記載の
ICカードにおいて、前記外部からの命令が有する引数
の内容を変更することにより、前記前処理値を前記メモ
リに保存する否かが選択可能であることを特徴とする。
請求項5に係る発明は、請求項1から請求項4までのい
ずれか1項に記載のICカードにおいて、前記前処理値
を保存する場合は、前記前処理値を保存した旨の識別情
報を前記メモリに保存することを特徴とする。請求項6
に係る発明は、請求項1から請求項5までのいずれか1
項に記載のICカードにおいて、前記データの暗号化又
は復号化を行う場合は、前記メモリに保存されている前
記前処理値を用いて、前記データ変換プログラムの主要
処理部を実行することを特徴とする。
【0013】請求項7に係る発明は、請求項6に記載の
ICカードにおいて、前記データ処理プログラムを実行
する場合は、使用する前記鍵情報に関連づけられた前記
前処理値が前記メモリに保存されているか否かを予め確
認することを特徴とする。請求項8に係る発明は、請求
項7に記載のICカードにおいて、使用する前記鍵情報
に関連づけられた前記前処理値が前記メモリに保存され
ていることが確認されなかった場合には、前記データ変
換プログラムの前処理部及び主要処理部の双方を実行す
ることにより、前記データの暗号化又は復号化を行うこ
とを特徴とする。
【0014】
【発明の実施の形態】以下、図面等を参照して、本発明
に係る実施形態について説明する。 (第1実施形態)本発明に係る第1実施形態は、非対称
キー方式の暗号化方法であるRSAに基づき、平文のデ
ータを暗号化、又は、暗号化されたデータを復号化する
ことが可能なICカードである。RSAの実行は、図1
3に示したMongomery法による計算アルゴリズ
ム(以下「RSA計算アルゴリズム」という)を用いて
行われる。
【0015】本実施形態は、図13に示すRSA計算ア
ルゴリズムが、暗号化すべき平文X(又は復号化すべき
暗号文C)に依存せずにその計算を実行できる第2行目
(以下「前処理部」という)と、平文Xに依存した計算
である、第3行目以降の部分(以下「主要処理部」とい
う)とからなる点に着目し、ICカード内の暗号化又は
復号化処理の速度向上を図るものである。すなわち、本
実施形態では、前処理部を予め1回だけ計算し、その結
果得られた値(以下「前処理値」という)をEEPRO
Mに保存する。そして、その後、実際に暗号文の復号化
等を行う場合には、EEPROMに保存されている前処
理値を利用し、主要処理部の計算のみを行う。これによ
り、本実施形態では、暗号化/復号化処理のたびに前処
理部の計算を繰り返すという無駄を排除し、迅速な処理
を実現する。
【0016】図1は、本発明の第1実施形態であるIC
カードの構成を示す図である。図1に示されるように、
ICカード10は、読み出し専用メモリであるROM1
2、揮発性メモリであるRAM14、随時書き換え可能
な不揮発性メモリであるEEPROM16、及びこれら
のメモリにアクセスするCPU18を備えている。ま
た、ICカード10は、リーダ・ライタ22と通信を行
うためのI/Oインターフェイス20を備えている。
【0017】ICカード10内の各メモリ(12、1
4、16)へのアクセスは、すべてCPU18を介して
行われ、外部からこれらメモリを直接アクセスすること
はできない。すなわち、リーダ・ライタ22からCPU
18に対して所定の「コマンド」を与えると、CPU1
8はこの「コマンド」を解釈実行し、その結果を、リー
ダ・ライタ22に対して「レスポンス」として返送す
る。なお、「コマンド」とは、リーダ・ライタからIC
カードへ送られる情報であって、ICカードに所定の動
作させるためのものをいう。
【0018】例えば、EEPROM16内の所定のファ
イルに書き込みを行う場合には、「書込コマンド」とと
もに、書込対象となるデータをCPU18に与え、CP
U18による「書込コマンド」の実行という形式で書込
処理が行われることになる。逆に、EEPROM16内
の所定のファイルからデータの読み出しを行う場合に
は、所定の「読出コマンド」をCPU18に与え、CP
U18による「読出コマンド」の実行という形式によっ
て読出処理が行われることになる。このように、ICカ
ード10内において「コマンド」の実行が終了すると、
実行した「コマンド」に対する「レスポンス」が外部に
対して返送される。例えば、「書込コマンド」を与えた
場合には、書込処理が支障なく実行されたか否かを示す
「レスポンス」が返送され、「読出コマンド」を与えた
場合には、読出対象となったデータがレスポンスという
形で返送されることになる。ただし、EEPROM16
へのアクセスは、無条件で行われるわけではなく、所定
のアクセス条件が満足されることが前提となる。このア
クセス条件は、例えば個々のファイルごとに設定され
る。
【0019】図2は、図1に示すEEPROM16内の
階層構造を示すブロック図である。本実施形態のEEP
ROMは、4つの階層から構成される。すなわち、第1
層のMF( Master File) 、第2層のDF(
Dedicated File) 、第3層のEF( El
ementary File) 及び第4層である不図示
のレコード構造である。MFは、データメモリ全体のフ
ァイルである。MFは、各アプリケーション(サービ
ス)に共通したデータを格納するためのファイルであ
り、例えば、このICカード10の所有者の氏名、住
所、電話番号などの情報が記録される。DFは、専用フ
ァイルであり、一般的にはアプリケーションごとにDF
の設定がなされる。EFは、基礎ファイルであり、キー
・データを格納するIEFと、アプリケーションが使用
するデータを格納するWEFの2種類がある。レコード
構造は、アクセスの最小単位である。
【0020】MF及び各DFは、それぞれ別個独立に1
又は2以上のIEF及びWEFを有している。前述した
ように、WEFには、ICカード10に記録すべき本来
のデータが記録されるのに対して、IEFには、各領域
をアクセスするために必要なキーが格納される。例え
ば、DF1内に設けられたIEFには、DF1内のWE
Fに対するアクセスを行うときに照合されるキーが記録
されている。
【0021】上述した各ファイルは、ディレクトリ・フ
ァイルにより管理される。図3は、一例としてWEFを
管理するディレクトリ・ファイルの構造を示す図であ
る。WEFのディレクトリ・ファイル60には、先頭ア
ドレス62、全容量63等を格納する領域のほか、アク
セス条件を格納するアクセス条件情報領域65が設けら
れている。ここで、アクセス条件とは、当該WEFにア
クセスする際に満たされていなければならない条件であ
り、照合済み状態でなければならないキーの種類を規定
するものである。
【0022】図4は、アクセス条件情報領域65に格納
されているアクセス条件を例示する図である。アクセス
条件は、ファイルへのアクセスの態様ごとに、すなわ
ち、データの「読み出し」、「書き込み」又は「更新」
のそれぞれについて定められている。各アクセス条件
は、8つのキーより構成されている。各キーにおいて、
「1」は、当該ファイルにアクセスするためには、その
キーが照合済み状態でなければいけないことを意味す
る。また、「0」は照合が不要であることを示す。図4
の例では、データの「読み出し」については、少なくと
もK1が照合済み状態であること、「書き込み」につい
ては、少なくともK1及びK4が照合済み状態であるこ
と、また、「更新」については、少なくともK1及びK
5が照合済み状態であることが条件として定められてい
る。
【0023】図5は、本実施形態で使用するコマンドの
うち、SELECTコマンド、WRITE_N&CON
STコマンド(以下「WRITE」コマンドと略す)及
びRSA_CALCULATEコマンド(以下「CAL
CULATEコマンド」と略す)のフォーマットを示す
図である。SELECTコマンドは、カレントDF下の
EFを選択するためのコマンドである。SELECTコ
マンドは、各々1バイトからなる5つの情報(CLA〜
LC)と、それに続くデータから構成される。最初の5
バイトは、それぞれコマンドのクラスを示すCLA、種
別を示すINS、コマンドのパラメータP1、P2、及
び後に続くDATAの長さ(バイト数)を示すLCであ
る。DATAは、ファイル名等、選択すべきEFに関す
る情報である。
【0024】WRITEコマンドは、SELECTコマ
ンドで選択されたIEFに、RSA暗号キーの除数部N
を新規に書き込むとともに、RSA計算アルゴリズムの
前処理部を実行し、その結果得られた前処理値をIEF
に書き込むためのコマンドである。WRITEコマンド
の最初の5バイトは、SELECTコマンドと同じCL
A等である。また、その後に続くDATAは、公開キー
の除数部Nである。
【0025】CALCULATEコマンドは、ICカー
ド10に、外部機器22より受け取った暗号化(複合
化)されているデータを復号化(暗号化)させるための
コマンドである。CALCULATEコマンドの最初の
5バイトは、SELECTコマンドと同じCLA等であ
る。第6バイト目以降のDATAは、暗合化されるべき
平文X、又は復号化されるべき暗号文Cである。また、
DATAの後に続く1バイトのデータであるLEは、レ
スポンスの期待値である。本実施形態では、暗号化又は
復号化されたデータを最大256バイトを限度として全
てレスポンスとして返信するよう、LEの値を設定して
いる。
【0026】図6は、リーダ・ライタ22よりICカー
ド10に、EFを選択するためのSELECTコマンド
を送信した場合におけるICカードの動作を示す流れ図
である。ICカード10は、SELECTコマンドを受
信すると、まず、カレントDF以降に作成されたEFを
順次検索し、SELECTコマンドのDATAにより指
定されたEFが存在するか否かのチェックを行う(S6
02)。該当するEFが存在しなかった場合(S60
2:NO)には、エラーステータスをリーダ・ライタ2
2に送信し(S608)、処理を終了する。一方、S6
02において該当するEFが存在していた場合には、そ
のファイルのディレクトリ・アドレスをRAM14の所
定領域に格納する(S604)。最後に、リーダ・ライ
タ22にコマンド処理が正常に終了した旨のレスポンス
を送信し、ICカード10はSELECTコマンドの処
理を終了する。
【0027】図7は、リーダ・ライタ22よりICカー
ド10にWRITEコマンドが送信された場合における
ICカードの動作を示す流れ図である。ICカード10
がWRITEコマンドを受信すると、CPU18は、は
じめに図6のS604においてRAM14の所定領域に
格納された情報、すなわち、選択されたIEFのディレ
クトリ・アドレスを読み取る(S702)。次にCPU
18は、ディレクトリより、IEF内で書き込みが可能
である領域のアドレスを示すポインタを取得する(S7
04)。ポインタを取得したCPU18は、それが示す
アドレスから始まるレコードに、コマンドで指定した値
「01」を有するタグを付けるとともに、公開キーの除
数部Nを書き込む(S706)。
【0028】次にCPU18は、RSA計算アルゴリズ
ムの前処理部、すなわち「R^2mod N」の計算を
実行し、前処理値を取得する(S708)。S708で
の計算を終了すると、CPU18は、公開キーの除数部
Nを書き込んだレコードの次のレコードに、自動的に値
「02」を有するタグを付し、さらにS708で得られ
た前処理値を書き込む(S710)。最後にCPU18
は、コマンドの処理が正常に終了したことを示すレスポ
ンスをリーダ・ライタ22に送信し(S712)、コマ
ンドの実行を終了する。
【0029】図8は、リーダ・ライタ22よりICカー
ド10にCALCULATEコマンドを送信した場合に
おけるICカードの動作を示す流れ図である。ICカー
ド10がCALCULATEコマンドを受信すると、C
PU18は、あらかじめSELECTコマンドの実行に
より選択されているIEFのディレクトリを参照し、I
EFの先頭のアドレスを取得する(S802)。次にC
PU18は、取得したアドレスより後の各レコードのタ
グを参照することにより、レコードの検索を行う(S8
04、S808、S814、S822)。
【0030】具体的には、まず値「01」を有するタグ
を検索する(S804)。その結果タグ「01」を発見
できなかった場合には、エラーステータスをレスポンス
としてリーダ・ライタ22に送信し(S830)、コマ
ンド処理を終了する。また、タグ「01」を発見した場
合には、そのレコードの内容を読み出すことにより公開
キーの除数部Nを取得する(S806)。次に、値「0
2」を有するタグの検索が行われる(S808)。その
結果、タグ「02」が発見された場合には、IEFにR
SA計算アルゴリズムで使用する前処理値が保存されて
いることが意味される。そこで、CPU18は、RSA
計算アルゴリズムを実行するときには、前処理部の計算
は不要である旨を意味するフラグFLGをONに設定す
る(S810)。一方、タグ「02」が発見されなかっ
た場合には、前処理値はIEFに保存されていないこと
が意味されるので、FLGはOFFに設定される(S8
12)。
【0031】次に、値「03」を有するタグの検索が行
われる(S814)。タグ「03」は、公開キーの指数
部eが格納されているレコードに付されるタグである。
検索の結果、タグ「03」が発見された場合には、CA
LCULATEコマンドのDATAにある平文Xの暗号
化処理が行われる。具体的には、CPU18は、タグ
「03」が付されたレコードより公開キーの指数部eを
取得する(S816)。次にCPU18は、キーの指数
部e、キーの除数部N、平文X、及びフラグFLGがそ
れぞれ格納されているメモリ領域の開始アドレスを指定
してRSA暗号モジュールをコールする(S818)。
RSA暗号モジュールとは、RSA計算アルゴリズムを
実行するためのサブルーチンである。RSA暗号モジュ
ールの実行が終了すると、CPU18は、その結果を含
むレスポンス情報をリーダ・ライタ22に送信し(S8
20)、CALCULATEコマンドの処理を終了す
る。
【0032】一方、S814において、タグ「03」が
発見されなかった場合には、次にタグ「04」の検索を
行う(S822)。タグ「04」が付けられているレコ
ードは、秘密キーの指数部dが格納されているレコード
である。検索の結果、タグ「04」が発見された場合に
は、CALCULATEコマンドのDATAにある暗号
文Cの復号化処理が実行される。具体的には、まず値
「02」を有するタグの検索が行われる(S823)。
その結果、タグ「02」が発見された場合には、CPU
18は、RSA計算アルゴリズムを実行するときには、
前処理部の計算は不要である旨を意味するフラグFLG
をONに設定する(S824)。一方、タグ「02」が
発見されなかった場合には、FLGはOFFに設定され
る(S825)。
【0033】次にCPU18は、タグ「04」が付され
たレコードより秘密キーの指数部dを取得する(S82
6)。さらにCPU18は、キーの指数部d、キーの除
数部N、暗号文C、及びFLGのそれぞれが格納されて
いるメモリ領域の開始アドレスを指定してRSA暗号モ
ジュールをコールする(S828)。RSA暗号モジュ
ールの実行が終了すると、CPU18は、その結果を含
むレスポンス情報をリーダ・ライタ22に送信し(S8
29)、CALCULATEコマンドの処理を終了す
る。一方、S822においてタグ「04」が発見されな
かった場合には、CPU18は、エラーステータスを送
信し(S832)、コマンドの処理を終了する。
【0034】次に、図8のS818及びS828におい
て、RSAモジュールが行う処理について説明する。図
9は、RSAモジュールの処理内容を示す流れ図であ
る。前述のように、RSAモジュールは、RSA計算ア
ルゴリズムを実行し、平文Xの暗号化、又は暗号文Cの
復号化を行うサブルーチンである。RSAモジュールで
は、まずFLGがONに設定されているか否かが確認さ
れる(S902)。FLGがONに設定されている場合
には、選択されているIEFに前処理値が保存されてい
ることが意味されるので、CPU18は、IEFにおい
てタグ「02」が付されているレコードを検索し、その
レコードに格納されている前処理値を読み出す(S91
0)。
【0035】一方、S902においてFLGがOFFに
設定されている場合には、選択されたIEFに前処理値
が保存されていないことが意味される。そこで、CPU
18は、RSA計算アルゴリズムの前処理部を実行し、
前処理値を取得する(S904)。S904又はS91
0の処理が終了すると、CPU18は、RSA計算アル
ゴリズムの主要処理部を実施し、平文Xの暗号化、又は
暗号文Cの復号化を行う(S906)。S906の計算
を終了すると、その計算結果は返値として図8のS81
8又はS828に返され(S908)、RSAモジュー
ルの処理は終了する。
【0036】以上説明したように、本実施形態では、R
SA計算アルゴリズムを前処理部と主要処理部に分けて
取り扱い、ICカード10に公開キーの除数部Nを保存
する場合には、そのキーNを用いて前処理部の計算を実
行し、その結果取得された前処理値をキーNが保存され
るIEFと同一のIEFに保存する。前述のように、前
処理部の計算内容は、暗号化されるべき平文X、又は復
号化されるべき暗号文Cに依存しないものであり、暗号
化/復号化のたびに同一の計算を行い同一の計算結果
(前処理値)を取得するものである。そこで、本実施形
態は、一度取得した前処理値を不揮発性メモリであるE
EPROMに格納することにより、その前処理値をその
後も有効利用できるようにしたものである。また、本実
施形態では、前処理値がキーNと同じIEFに格納され
るので、異なるIEFを複数用意すれば、複数の公開キ
ーをそれぞれの前処理値とともにEEPROM16に保
存することが可能となっている。
【0037】また、本実施形態では、前処理値をIEF
のレコードに書き込むときに、そのレコードに値「0
2」を有するタグを付することとしている。このタグ
「02」は、前処理値をIEFに保存しているか否かの
識別情報として機能するものである。つまり、IEFに
前処理値が保存されているか否かを判断する必要がある
場合には、IEFにタグ「02」が存在するか否かを検
索すれば足りる。つまり、本実施形態では、前処理値の
存在の有無を確認するためにIEFの全情報を参照する
必要がなく、迅速な判断を行うことが可能である。
【0038】また、本実施形態では、ICカード10の
内部でデータの復号化を行う場合には、IEFに保存さ
れている前処理値を用いて、RSA計算アルゴリズムの
主要処理部を実行することにより行う。つまり、本実施
形態では、毎回の暗号化/復号化の処理においてRSA
計算アルゴリズムの前処理部を実行する必要を回避し、
もって暗号化/復号化処理の要する時間を短縮してい
る。特に本実施形態では、RSA計算アルゴリズムの前
処理部がべき乗剰余の計算を含むために、前処理部の計
算を回避することにより暗号化/復号化処理の著しい効
率化が図れる。
【0039】また、本実施形態では、データの暗号化/
復号化処理を実行する場合は、使用する公開キーNに関
連づけられた前処理値がIEFに保存されているか否か
を予め確認する。これにより、不慮の事態その他の事情
により、IEFに前処理値が保存されていない場合であ
っても、IEF内の不適切な情報が前処理値の代わりに
参照され、暗号化/復号化処理が実施されることが防止
される。さらに、本実施形態では、使用する公開キーN
に関連づけられた前処理値がIEFに保存されているこ
とが確認されなかった場合には、RSA計算アルゴリズ
ムの前処理部及び主要処理部の双方を実行することによ
り、データの暗号化/復号化処理を実行する。つまり、
本実施形態では、IEFに前処理値が保存されている否
かを問わず、確実にデータの暗号化/復号化処理が行わ
れる。
【0040】(第2実施形態)次に本発明の第2実施形
態について説明する。本実施形態のICカードは、WR
ITEコマンドと類似の機能を有するWRITE_RS
AKEYコマンドを処理する機能を有する点において第
1実施形態のICカードと異なる。図14は、WRIT
E_RSAKEYコマンドのフォーマットを示す図であ
る。図に示されるように、WRITE_RSAKEYの
フォーマットは、第1実施形態のWRITEコマンドと
同様であり、CLA、INS等の実際の内容が異なるの
みである。図10は、WRITE_RSAKEYコマン
ドを受信した場合のICカード10が行う処理内容を示
す流れ図である。図10において、S1002からS1
006までは、図7のS702からS706までの処理
と同一であり、S1008はS712の処理と同一であ
る。すなわち、WRITE_RSAKEYコマンドは、
公開キーの除数部Nのみを選択されたIEFに書き込む
コマンドであり、RSA計算アルゴリズムの前処理値を
IEFに保存しない点においてWRITEコマンドと相
違する。
【0041】本実施形態では、上記2つのコマンドを適
切に選択して使用することにより、公開キーNをIEF
に保存する際に、RSA計算アルゴリズムの前処理値を
も保存するか否かを選択することが可能である。2つの
コマンドは、例えばICカードを発行する段階におい
て、カード発行機の能力に応じて使い分ける。例えば、
ICカードの生産工場において、カード発行専用機によ
りICカードを発行する場合には、WRITE_RSA
KEYコマンドを用いて、公開キーNをICカードのE
EPROMに保存する。カード発行専用機は、一般に演
算処理能力がICカードより高く、また、発行するカー
ドの枚数が膨大であることから、計算負荷の高いRSA
の前処理部の計算をカード発行専用機において高速に行
い、前処理値を公開キーとは別個にEEPROMに書き
込むためである。これにより、前処理の計算をICカー
ドに行わせるよりもカード1枚あたりの発行時間を短縮
でき、短時間に大量のICカードを発行することが可能
となる。
【0042】一方、小売店等において、パーソナルコン
ピュータ等を用いて顧客にICカードを発行する場合に
は、WRITEコマンドを用いて公開キーNをICカー
ドのEEPROMに書き込む。小売店等におけるカード
発行数は比較的少数であるため、カード発行時間の短縮
に対する要請が少なく、また、パーソナルコンピュータ
等の演算処理能力は前述のカード発行専用機ほどには高
くないことから、RSAの前処理部をICカードの外部
で処理する利点が少ないからである。したがって、この
ような場合には、ICカードの機能を有効利用すべく、
WRITEコマンドを用いて前処理値をICカードに求
めさせるのである。
【0043】また、多数の公開キーNをEEPROMに
保存する必要がある場合は、WRITE_RSAKEY
コマンドを用いて公開キーNのみを保存する。EEPR
OM16のメモリ容量が比較的小さいことから、多数の
前処理値を保存することによるメモリ資源の消費を回避
するためである。この場合には、前処理値は、復号化処
理等を行う際にその都度計算して求める。つまり、本実
施形態では、EEPROMのメモリ容量と、それに保存
する暗号キーの数との関係に応じて、暗号キーとともに
前処理値をも保存するか否かを適切に選択し、ICカー
ドの限られたメモリ資源を有効に活用することが可能と
なっている。
【0044】(その他の実施形態)なお、本発明は、上
記実施形態に限定されるものではない。上記実施形態
は、例示であり、本発明の特許請求の範囲に記載された
技術的思想と実質的に同一な構成を有し、同様な作用効
果を奏するものは、いかなるものであっても本発明の技
術的範囲に包含される。
【0045】1)第1実施形態においては、非対称鍵方
式の暗号化方法を利用するICカードを例に説明をした
が、これは、本発明の適用範囲を限定する意味のもので
はない。本発明の技術的思想は、DES等の対称鍵方式
の暗号化方法を利用するICカードにも適用可能であ
る。 2)第2実施形態においては、2種類の別個独立のコマ
ンドを用意し、いずれか一方を選択してICカードに付
与することにより、公開キーNをEEPROMに書き込
む際に、前処理値をも書き込むか否かを選択できること
としているが、これは、1のコマンドを使用し、そのコ
マンドの有するパラメータの値を変更することにより、
前処理値をも書き込むか否かを選択可能とすることであ
ってもよい。このように、2つのコマンドの機能を1の
コマンドに集約した場合には、ICカードのROM等に
格納すべきプログラムをより簡潔なものとし、ICカー
ドの有限なメモリ資源を有効に活用することができると
いう効果が得られる。
【0046】
【発明の効果】以上詳しく説明したように、請求項1に
係る発明によれば、鍵情報をメモリに保存する場合に
は、前処理部を実行し、その結果取得された前処理値を
鍵情報に関連づけてメモリに保存するので、一度取得し
た前処理値をその後も有効に活用することが可能であ
る。請求項2から請求項4までのいずれか1項に係る発
明によれば、鍵情報を前記メモリに保存する場合に、前
処理値を保存するか否かを外部からの命令により選択可
能であるので、ICカードの発行の効率化、及びメモリ
資源のを有効活用を図ることが可能である。
【0047】請求項5に係る発明によれば、前処理値を
保存する場合は、前処理値を保存した旨の識別情報を前
記メモリに保存するので、前処理値の存在の有無を容易
かつ迅速に確認することが可能となった。請求項6に係
る発明によれば、データの暗号化又は復号化を行う場合
は、メモリに保存されている前処理値を用いて、データ
変換プログラムの主要処理部を実行することとしたの
で、暗号化/復号化の処理を迅速に行うことが可能とな
っている。請求項7に係る発明によれば、データ処理プ
ログラムを実行する場合は、使用する鍵情報に関連づけ
られた前処理値がメモリに保存されているか否かを予め
確認することとしたので、前処理値が保存されていない
場合であっても、誤った処理が実行されることはない。
【0048】請求項8に係る発明によれば、使用する鍵
情報に関連づけられた前処理値がメモリに保存されてい
ることが確認されなかった場合には、データ変換プログ
ラムの前処理部及び主要処理部の双方を実行することに
より、データの暗号化又は復号化を行うこととしたの
で、前処理値が保存されるか、いないかに関わらず必ず
暗号化/復号化の処理を実行することが可能である。
【図面の簡単な説明】
【図1】本発明の第1実施形態であるICカードの構成
を示す図である。
【図2】図1に示すEEPROM16内の階層構造を示
すブロック図である。
【図3】WEFを管理するディレクトリ・ファイルの構
造を示す図である。
【図4】EFへのアクセス条件を例示する図である。
【図5】本発明の第1実施形態において使用されるコマ
ンドのフォーマットを示す図である。
【図6】SELECTコマンドを実行するICカードの
動作を示す流れ図である。
【図7】RSA_WRITEコマンドを実行するときの
ICカードの動作を示す流れ図である。
【図8】RSA_CALCULATEコマンドを実行す
るICカードの動作を示す流れ図である。
【図9】RSAモジュールの処理内容を示す流れ図であ
る。
【図10】WRITE_RSAKEYコマンドを処理す
る場合のICカード10の動作を示す流れ図である。
【図11】外部機器でRSAによりデータを暗号化し、
得られた暗号文をICカードへ送信する場合を示した概
念図である。
【図12】RSAによる平文の暗号化、又は、暗号分の
復号化の処理手順を示す流れ図である。
【図13】Mongomery法の計算アルゴリズムを
示す図である
【符号の説明】
10 ICカード 12 ROM 14 RAM 16 EEPROM 18 CPU
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成8年11月1日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】図14
【補正方法】追加
【補正内容】
【図14】WRITE_RSAKEYコマンドのフォー
マットを示す図である。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 CPUと、 前記CPUが実行可能なプログラム及び前記CPUがア
    クセス可能なデータを保存するメモリとを備え、 前記メモリに保存している鍵情報を用いて、外部より取
    得したデータ又は前記メモリに保存しているデータを暗
    号化又は復号化するデータ変換プログラムを有し、外部
    からの命令に従い、前記データを暗号化又は復号化する
    ICカードにおいて、 前記データ変換プログラムは、暗号化又は復号化すべき
    前記データの内容に依存しない処理を行う前処理部、及
    び、前記データの内容に依存する処理を行う主要処理部
    とを有し、 前記鍵情報を前記メモリに保存する場合には、 前記前処理部を実行し、その結果取得された前処理値を
    前記鍵情報に関連づけて前記メモリに保存することを特
    徴とするICカード。
  2. 【請求項2】 請求項1に記載のICカードにおいて、 前記鍵情報を前記メモリに保存する場合に、 前記前処理値を保存するか否かを外部からの命令により
    選択可能であることを特徴とするICカード。
  3. 【請求項3】 請求項2に記載のICカードにおいて、 前記鍵情報とともに前記前処理値を前記メモリに保存す
    ることを命ずる第1の命令と、前記鍵情報のみを前記メ
    モリに保存することを命ずる第2の命令とのいずれか一
    方を選択して外部より与えることにより、前記前処理値
    を保存するか否かが選択可能であることを特徴とするI
    Cカード。
  4. 【請求項4】 請求項2に記載のICカードにおいて、 前記外部からの命令が有する引数の内容を変更すること
    により、前記前処理値を前記メモリに保存する否かが選
    択可能であることを特徴とするICカード。
  5. 【請求項5】 請求項1から請求項4までのいずれか1
    項に記載のICカードにおいて、 前記前処理値を保存する場合は、前記前処理値を保存し
    た旨の識別情報を前記メモリに保存することを特徴とす
    るICカード。
  6. 【請求項6】 請求項1から請求項5までのいずれか1
    項に記載のICカードにおいて、 前記データの暗号化又は復号化を行う場合は、 前記メモリに保存されている前記前処理値を用いて、前
    記データ変換プログラムの主要処理部を実行することを
    特徴とするICカード。
  7. 【請求項7】 請求項6に記載のICカードにおいて、 前記データ処理プログラムを実行する場合は、 使用する前記鍵情報に関連づけられた前記前処理値が前
    記メモリに保存されているか否かを予め確認することを
    特徴とするICカード。
  8. 【請求項8】 請求項7に記載のICカードにおいて、 使用する前記鍵情報に関連づけられた前記前処理値が前
    記メモリに保存されていることが確認されなかった場合
    には、前記データ変換プログラムの前処理部及び主要処
    理部の双方を実行することにより、前記データの暗号化
    又は復号化を行うことを特徴とするICカード。
JP22495096A 1996-08-27 1996-08-27 Icカード Expired - Lifetime JP4021956B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22495096A JP4021956B2 (ja) 1996-08-27 1996-08-27 Icカード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22495096A JP4021956B2 (ja) 1996-08-27 1996-08-27 Icカード

Publications (2)

Publication Number Publication Date
JPH1063580A true JPH1063580A (ja) 1998-03-06
JP4021956B2 JP4021956B2 (ja) 2007-12-12

Family

ID=16821739

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22495096A Expired - Lifetime JP4021956B2 (ja) 1996-08-27 1996-08-27 Icカード

Country Status (1)

Country Link
JP (1) JP4021956B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002065287A1 (en) * 2001-02-16 2002-08-22 Sony Corporation Data processing method and its apparatus
JP2002244865A (ja) * 2001-02-16 2002-08-30 Sony Corp データ処理方法および半導体回路
JP2009258995A (ja) * 2008-04-16 2009-11-05 Sony Corp リーダライタ、通信処理装置、通信処理方法、データ管理システム及び通信システム
JP2010134940A (ja) * 2001-10-25 2010-06-17 Research In Motion Ltd エンコードされたメッセージの処理のための多段階システムおよびその方法
JP2010252059A (ja) * 2009-04-16 2010-11-04 Hitachi Ltd Icチップおよびこれを搭載した情報処理装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002065287A1 (en) * 2001-02-16 2002-08-22 Sony Corporation Data processing method and its apparatus
JP2002244865A (ja) * 2001-02-16 2002-08-30 Sony Corp データ処理方法および半導体回路
US7240345B2 (en) 2001-02-16 2007-07-03 Sony Corporation Data processing apparatus and associated method
JP4670158B2 (ja) * 2001-02-16 2011-04-13 ソニー株式会社 データ処理方法および半導体回路
US8141057B2 (en) 2001-02-16 2012-03-20 Sony Corporation Data processing apparatus and associated method
JP2010134940A (ja) * 2001-10-25 2010-06-17 Research In Motion Ltd エンコードされたメッセージの処理のための多段階システムおよびその方法
JP2009258995A (ja) * 2008-04-16 2009-11-05 Sony Corp リーダライタ、通信処理装置、通信処理方法、データ管理システム及び通信システム
US8698599B2 (en) 2008-04-16 2014-04-15 Sony Corporation Reader/writer, communication processing device, communication processing method, data management system and communication system
JP2010252059A (ja) * 2009-04-16 2010-11-04 Hitachi Ltd Icチップおよびこれを搭載した情報処理装置

Also Published As

Publication number Publication date
JP4021956B2 (ja) 2007-12-12

Similar Documents

Publication Publication Date Title
US9280671B2 (en) Semiconductor device and encryption key writing method
CN1983227B (zh) 具有大容量存储器的可拆卸式电脑
EP1341071A2 (en) Memory card
EP2228775A2 (en) Information storage medium, authentication data generation method, and medium authentication system
CN100541528C (zh) 数据删改防止方法及数据删改防止系统
JP4828809B2 (ja) Icカードおよびicカードにおける処理方法
JP2008541251A (ja) データの安全な処理
JPH05217033A (ja) データの認証方法
US20020044655A1 (en) Information appliance and use of same in distributed productivity environments
US6732272B1 (en) Program writable integrated circuit card and method therefore
JP2002304602A (ja) カード情報更新システム
JP4723187B2 (ja) メモリ内の符号化データの更新管理
JP4021956B2 (ja) Icカード
US7543153B2 (en) Digital signature generating apparatus, method, computer program and computer-readable storage medium
KR20070094108A (ko) 데이터 보안 장치 및 이를 포함하는 이동 통신 단말기
JPS63211045A (ja) 携帯可能電子装置
JPH09265254A (ja) 情報記憶媒体の相互認証システム
JPH09179949A (ja) 携帯可能情報記録媒体とそのリーダライタ装置
JP2003091240A (ja) 暗号化された情報の管理方法
JP3671238B2 (ja) チップカードのためのデータの動的解釈方法
JPH1173375A (ja) Icカード
JP7136237B2 (ja) 情報処理装置及びプログラム
JPH10143441A (ja) 機密保持機能を備えた半導体装置、符号処理方法及びそのソフトウエアを記憶した記憶媒体
Kose et al. A SECURE DESIGN ON MIFARE CLASSIC CARDS FOR ENSURING CONTACTLESS PAYMENT AND CONTROL SERVICES
JPS63211049A (ja) 携帯可能電子装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061003

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20061124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061201

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070928

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

Free format text: PAYMENT UNTIL: 20101005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111005

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121005

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131005

Year of fee payment: 6

EXPY Cancellation because of completion of term