JP2010252059A - Icチップおよびこれを搭載した情報処理装置 - Google Patents

Icチップおよびこれを搭載した情報処理装置 Download PDF

Info

Publication number
JP2010252059A
JP2010252059A JP2009099519A JP2009099519A JP2010252059A JP 2010252059 A JP2010252059 A JP 2010252059A JP 2009099519 A JP2009099519 A JP 2009099519A JP 2009099519 A JP2009099519 A JP 2009099519A JP 2010252059 A JP2010252059 A JP 2010252059A
Authority
JP
Japan
Prior art keywords
data
arithmetic processing
processing unit
application
memory
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
JP2009099519A
Other languages
English (en)
Other versions
JP5235764B2 (ja
Inventor
Yuki Yamazaki
裕紀 山▲崎▼
Shin Aikawa
慎 相川
Kazunori Hashimoto
和則 橋本
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009099519A priority Critical patent/JP5235764B2/ja
Priority to KR1020100001375A priority patent/KR101070580B1/ko
Priority to EP10250130A priority patent/EP2241996A1/en
Priority to US12/694,371 priority patent/US20100266121A1/en
Publication of JP2010252059A publication Critical patent/JP2010252059A/ja
Application granted granted Critical
Publication of JP5235764B2 publication Critical patent/JP5235764B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】セキュリティを保ちつつ、使い勝手の良いICチップおよびこれを搭載した情報処理装置を提供する。
【解決手段】本発明にかかるICチップは、暗号処理を実行するための制御プログラムを記憶する第1のメモリと、アプリケーションを記憶する第2のメモリと、前記アプリケーションの所定領域に記憶された暗号秘密鍵の少なくとも一部から構成された第1のデータを受け取り、前記制御プログラムに基づいて暗号処理を行う演算処理部と、前記演算処理部の制御により所定の演算処理を行う補助演算処理部とを備える。前記第1のデータが前記補助演算処理部のソフトウェアインタフェースで規定されたデータ形式に適合していない場合、前記演算処理部は、前記データ形式に適合するように前記第1のデータに処理を施した第2のデータを生成し、前記生成された第2のデータを前記第2のメモリに備えたデータテーブルに記憶するように制御する。
【選択図】図1

Description

本発明は、暗号処理を行うICチップおよびこれを搭載した情報処理装置に関する。
近年、コンピュータ等の情報機器を利用して金融取引や入退場管理を行う場合の本人確認の手段として、暗証番号やパスワード等の本人のみ知り得る情報を確認することや、カード等の本人のみが所持し得る物を用いて確認することなどが一般的に行われている。特に、耐タンパ性能を有するICチップを搭載したICカードでは、ICチップ内部に保護された秘密情報を用いて暗号処理を行うことが可能であり、本人確認の手段として広く用いられている。
このようなICカードに格納される秘密情報としては、公開鍵暗号の秘密鍵がある。公開鍵暗号の秘密鍵は極めて機密性の高い情報であり、より強固なセキュリティを確保するために暗号化して格納することが望ましい。
特許文献1には、プライベート・キーをパスワードによって暗号化して保管する方法が記載されている。具体的には、ユーザにより保管したいプライベート・キーとパスワードが入力されると、パスワードからプライベート・キーを暗号化するためのDES(Data Encryption standard)暗号の鍵を生成し、この鍵によってプライベート・キーを暗号化し、プライベート・キーから生成された識別子と暗号化プライベート・キーを鍵管理テーブルに保管する。そして、演算処理の対象であるデータとともに、識別子とパスワードが入力されると、識別子に基づいて鍵管理テーブルから暗号化プライベート・キーを取得し、パスワードにより復号し、復号したプライベート・キーを用いてデータの演算を行う。
特開2000−349749号公報
公開鍵暗号の秘密鍵を用いた処理を、例えば非接触通信インタフェースでの通信中に行うことで、セキュリティや信頼性を向上することができる。一方、非接触通信インタフェースを用いた通信は高速処理が求められるが、公開鍵暗号の秘密鍵を復号化し、その秘密鍵で公開鍵暗号処理を行うといったプロセスには時間がかかってしまい、使い勝手が悪いものとなる、という問題がある。
そこで、本発明は、セキュリティを保ちつつ、使い勝手の良いICチップおよびこれを搭載した情報処理装置を提供することを目的とする。
本発明にかかるICチップは、暗号処理を実行するための制御プログラムを記憶する第1のメモリと、アプリケーションを記憶する第2のメモリと、前記アプリケーションの所定領域に記憶された暗号秘密鍵の少なくとも一部から構成された第1のデータを受け取り、前記制御プログラムに基づいて暗号処理を行う演算処理部と、前記演算処理部の制御により所定の演算処理を行う補助演算処理部とを備える。前記第1のデータが前記補助演算処理部のソフトウェアインタフェースで規定されたデータ形式に適合していない場合、前記演算処理部は、前記データ形式に適合するように前記第1のデータに処理を施した第2のデータを生成し、前記生成された第2のデータを前記第2のメモリに備えたデータテーブルに記憶するように制御する。
本発明によれば、セキュリティを保ちつつ、使い勝手の良いICチップおよびこれを搭載した情報処理装置を提供することができる。
ICカードの構成例を示す図である。 ICチップのデータフロー例を示す図である。 公開鍵暗号秘密鍵の暗号処理およびデータテーブルへのデータ格納処理の一例を示す図である。 公開鍵暗号処理フロー例を示す図である。 アプリケーションの削除処理フロー例を示す図である。
図1は、ICカードの構成例を示す図である。
ICカード1は、ICチップ2を搭載するカードである。ICカード1の材質としては、例えばプラスチックなどが用いられる。なお、図1の例には記載していないが、ICカード1に、磁気記録テープ付加やエンボス加工などの処理が施されていてもよいし、非接触通信などの通信を行うためのアンテナが搭載されていてもよい。
ICチップ2は、外部から取得したデータや内部に保管したデータの暗号処理を行う機能を有する。なお、ICチップ2はICカード1の表面に露出した形で搭載されてもよいし、ICカード1の内部に埋め込まれていてもよい。
ICチップ2は、プログラム格納メモリ10と、データ格納メモリ20と、演算処理部30と、補助演算処理部40と、通信部50とを有している。これらの構成は、通信用バスなどを介して、相互に接続されている。なお、図1の例では、プログラム格納メモリ10とデータ格納メモリ20を別々の構成としているが、1つのメモリで構成するようにしても良い。
演算処理部30は、ICチップ2全体を制御するものであり、例えばマイクロプロセッサが用いられる。演算処理部30は、プログラム格納メモリ10に格納されているプログラムを読み出し、暗号処理などの処理を実行する。
補助演算処理部40は、演算処理部30の制御により、所定の演算に特化した処理を行うコプロセッサである。例えば、演算処理部30がプログラム格納メモリ10に格納されている暗号処理プログラムを実行する場合に、補助演算処理部40は、暗号計算や剰余乗算演算を高速に行うモンゴメリ乗算など、所定の演算処理を行う。
通信部50は、ICチップ2と外部装置との間で情報を送受信する。通信部50としては、例えば、ISO/IEC 7816などの通信規格に則った接触通信モジュールや、ISO/IEC 14443などの通信規格に則った非接触通信モジュール、USBモジュール、シングルワイヤプロトコルに則った通信を行うモジュールなどが用いられる。
プログラム格納メモリ10は、ROM(Read Only Memory)などの半導体メモリ等から構成され、演算処理部30において実行される制御プログラムを格納する。プログラム格納メモリ10は、カードオペレーティングシステム100(以下カードOS 100)と、ライブラリ110と、OS用暗号鍵120とを有する。なお、以下、演算処理部30、補助演算処理部40、カードOS100、ライブラリ110をプラットフォームと称する。
カードOS 100は、プラットフォームに依存しない汎用のアプリケーションとの間でデータの受け渡しをする際に用いられる仮想マシン101を有し、ライブラリ110やデータ格納メモリ20に記憶されたアプリケーションの読み出しを制御する。仮想マシン101は、汎用のアプリケーションとの間で受け渡すデータの種類や条件などのデータ形式を定めたソフトウェアインタフェース(API)に基づいて、データのやり取りを行う。
なお、カードOS100としては、例えばMULTOS(登録商標)やJava(登録商標)が用いられる。また、本例では、仮想マシン101を用いているが、これに限定するものではない。仮想マシンを用いずに演算処理部30がアプリケーションを直接実行する構成としても良い。
ライブラリ110は、暗号処理などの処理を行うためのプログラムであり、カードOS 100により読み出され、演算処理部30により実行される。ライブラリ110は、カードOS 100との間でデータの受け渡しをするデータ形式を定めたソフトウェアインタフェースに基づいて、データのやり取りを行う。
OS用暗号鍵120は、演算処理部30により実行される暗号処理に用いられる暗号鍵である。OS用暗号鍵120には、例えば共通鍵方式のブロック暗号の鍵などが用いられる。なお、本例では、OS用暗号鍵120をプログラム格納メモリ10に保存しているが、これに限定するものではなく、暗号鍵の全部または一部を、データ格納メモリ20や演算処理部30など他のモジュールの中に保存するようにしても良い。
データ格納メモリ20は、EEPROM(Electrically Erasable and Programmable ROM)などの半導体メモリ等から構成され、アプリケーション200、アプリケーション210と、データテーブル220を記憶する。
アプリケーション200および210は公開鍵暗号処理を行うためのプログラムであり、仮想マシン101のソフトウェアインタフェースを介して演算処理部30により実行される。また、アプリケーション200および210はそれぞれ公開鍵暗号処理に用いられる公開鍵暗号秘密鍵(以下、秘密鍵と略称する)を記憶する秘密鍵記憶領域201および211を有する。なお、図1では、二つのアプリケーションを記憶している例を示しているが、記憶するアプリケーションを二つに限定するものではなく、一つあるいは三以上のアプリケーションを記憶するようにしても良い。また、データ格納メモリ20は、ダウンロードなどにより入手されたアプリケーションを追加したり、記憶されているアプリケーションを削除したりすることができることが望ましい。
ここで、アプリケーション200、210とカードOS100 とライブラリ110との間でやり取りされるデータの一例について図2を用いて説明する。なお、図2では、アプリケーション200を用いた場合を例にしているが、アプリケーション210を用いた場合も同様である。図2において、図1と同じ構成は同じ符号を付し、説明を省略する。
図2の例では、アプリケーション200は、秘密鍵記憶領域201に記憶された秘密鍵の一部または全部をカードOS100に渡す。例えば、秘密鍵がRSA(Rivest Shamir Adleman)公開鍵暗号の秘密鍵である場合、P, Q, U, DP, DQのデータ(5つをまとめてデータ900とする)をカードOS100に渡す。この際、アプリケーション200が、プラットフォームに依存しない汎用のアプリケーションである場合、仮想マシン101を介してカードOS100とデータのやり取りを行う必要がある。本例では、ソフトウェアインタフェースに基づいて、データ900の形式で仮想マシン101とアプリケーション200との間で秘密情報の受け渡しを行うことを事前に取り決めてあるものとする。
なお、P, Q, U, DP, DQは、RSA公開鍵暗号秘密鍵として一般に用いられており、それぞれ、第1の秘密素数、第2の秘密素数、秘密係数、第1の秘密素数に基づく秘密指数、第2の秘密素数に基づく秘密指数、を示す。
前述のように、公開鍵暗号の処理を高速化するために、特定の演算に特化した処理を行うコプロセッサである補助演算処理部40や暗号処理を行うためのプログラムであるライブラリ100が用いられる。カードOS100は受け取ったデータを補助演算処理部40やライブラリ100に受け渡すことが必要であるが、一般的にコプロセッサやライブラリはその内部処理を自由に変更できず、使用のためのソフトウェアインタフェースが予め定まっている。例えば、ライブラリ100はデータ900を受け取ることができず、カードOS 100は、データ900に特定の処理を施し、N, E(それぞれ、モジュラス数、公開指数)等のデータを追加したデータ901を生成する必要がある。
なお、図2では、RSA公開鍵暗号を用いた場合を例にして記載しているが、これに限るものではなく、楕円暗号に基づく公開鍵暗号などの他の公開鍵暗号や、共通鍵暗号を用いても良い。
以上説明したように、公開鍵暗号の処理を高速化するために補助演算処理部40やライブラリ100を用いる場合に、これらのソフトウェアインタフェースに適応するようにデータ生成が必要である。しかし、公開鍵暗号処理の度にデータ生成を行っていたのでは、処理の高速化を図ることができないという問題がある。この問題を解決するために、生成したデータを保存しておく方法が考えられる。生成データを保存しておく場合、複数のアプリケーション毎に保存された生成データを読み出すための識別子が必要となる。しかし、前述のように、ソフトウェアインタフェースにより受け渡しを行うデータの形式が定められているため、自由な形式の識別子を用いることはできない。一方、例えばデータ900などの秘密情報そのものを識別子とした場合には、データの受け渡しをすることができるが、セキュリティを確保することはできないという問題がある。以下、この識別子の設定方法とともに、データ格納メモリ20に設けられたデータテーブル220について説明する。
データテーブル220は、鍵MAC(Message Authentication Code)値230、240と演算用データ231,241とを対応付けて保存する。図1の例では、二組の鍵MAC値と演算用データを保存しているが、これに限定するものではなく、一組または三組以上のデータを保存するようにしても良い。また、一つの鍵MAC値に対して複数の演算用データが対応づけられて記憶されていても良い。
ここで鍵MAC値とは、データ900のCBC(Cipher Block Chaining)-MAC値であり、データテーブル220を参照するために用いられる識別子である。CBC-MAC値とは、データ900など、暗号処理を施す対象にCBCモードのブロック暗号処理を施した結果得られたMAC値の最終ブロックの値を指す。このように、鍵MAC値は、データ900など、プラットフォームのソフトウェアインタフェースに適合したデータから生成されるため、 ライブラリ110等にデータの受け渡しをすることができる。また、データ900など、秘密情報を暗号化する際に、その秘密情報に関連した情報をデータテーブル220から読み出すための識別子を生成することができるため、効率的に処理を行うことができる。
なお、ブロック暗号のCBCモードによる処理では、ある平文ブロックとその前段ブロックの暗号結果との排他的論理和を取ったものに対して暗号処理を施し、それを当該ブロックの暗号結果とする。よって、CBCモードによる暗号化では、平文メッセージ全体が数珠繋ぎに暗号化されるため、最終ブロックの暗号結果(これをCBC-MAC値と言う)は、平文メッセージ全体を反映したハッシュ値として用いることができる。
また、CBC-MAC値の生成は暗号処理であるため、データ900などの秘密情報であっても、計算途中にデータが漏れるなどの危険性が低く、安全に計算することができる。更に、CBC-MAC値から元の秘密情報を復元することはできない。そのため、テーブル参照のための識別子の比較演算が、ICチップへの不正な攻撃により外部に漏れた場合であっても、その情報から元の秘密情報を取得することはできず、セキュリティを保つことができるという効果を有する。
データテーブル220の演算用データには、アプリケーション200、210から提供される秘密情報(例えばデータ900)を、ライブラリ110などのソフトウェアインタフェースに適するように形成されたデータ(例えば、N,Eなどの生成データ、または、生成データを含むデータ901)を格納する。
また、例えば仮想マシン101とライブラリ110でデータパディングの方式や多バイト長データを扱う際のエンディアンが異なる場合が考えられる。仮想マシン101では多バイト長データをビッグエンディアンで扱い、ライブラリ110では多バイト長データをリトルエンディアンで扱う場合、ビッグエンディアンの多バイト長データをリトルエンディアンに変換し、演算用データに格納しておく。エンディアンの変換はメモリのコピーを伴うが、秘密情報をメモリコピーする場合、その際の消費電力波形からデータが漏洩するのを防ぐためにコピーの順番をランダムに行うなどの処理を要し、その分時間がかかる。そのため、このように変換したデータを演算用データに格納しておくことにより、処理時間を短縮することができる。なお、格納する演算用データが秘密情報である場合は暗号化してから保存し、復号化してから用いる。
ここで、ICチップ2におけるデータの流れの一例を、図2を用いて補足する。
まず、データ900がアプリケーション200から仮想マシン101を介してカードOS100に渡される。演算処理部30は、カードOS 100によりデータ900の一部または全部のCBC-MAC値を計算し、その値(データ902)を用いてデータテーブル220を参照する。参照の結果、データ902が鍵MAC値230と合致した場合、カードOS 100は、演算用データ231を読み出し、データ903として取得する。図2の例では、データ903はN,Eである。カードOS 100は、データ900とデータ903とを合わせ、データ901としてライブラリ110に受け渡す。
次に、図3を用いて、秘密鍵の暗号処理およびデータテーブル220へのデータ格納処理の一例について説明する。
図3に示す処理フローは、カードOS100などのプログラムに基づいて、演算処理部30により実行される。また、この処理フローは、ダウンロードなどにより新たに取得したアプリケーションをデータ格納メモリ20に保存した場合、あるいは、そのアプリケーションを初めて実行した場合を契機に開始される。以下、新たに保存されたアプリケーションあるいは、初めて実行されるアプリケーションがアプリケーション200である場合を例に説明を行う。
まず、アプリケーション200から仮想マシン101を介してカードOS100に、秘密鍵記憶領域201に記憶された秘密鍵が渡される(S1000)。このとき、アプリケーション200からカードOS100に秘密鍵の値そのものが渡されてもよいし、秘密鍵が格納されている秘密鍵記憶領域201を特定する情報が渡されてもよい。演算処理部30は、秘密鍵を受け取ると、秘密鍵のエンディアンをプラットフォームに適した形に変換し、OS用暗号鍵120を用いてCBC-MAC方式で暗号化を行う(S1010)。
ここで、アプリケーション200がプラットフォームに依存しないアプリケーションであるかどうかを判断する(S1020)。プラットフォームに依存したアプリケーションの場合、演算処理を行うことなく、ライブラリ110等との間でデータ受け渡しをすることができるため、S1040に進む。なお、図1の例では、予めデータテーブル220が設けられているが、データ格納メモリ20に記憶されているアプリケーションが全てプラットフォームに依存したアプリケーションである場合には、データテーブル220を設けず、プラットフォームに依存しないアプリケーションが新たに記憶された場合にデータテーブル220を設けるようにしても良い。
一方、プラットフォームに依存しないアプリケーションである場合には(S1010 No)、演算処理部30は演算用データ231を生成する。生成された演算用データ231は、S1010の暗号処理により得られた鍵MAC値230と対応付けた形でデータテーブル220に保存される(S1030)。 S1010で鍵MAC値230が生成されると、暗号化された秘密鍵は、仮想マシン101経由でカードOS 100からアプリケーション200に渡される(S1040)。
アプリケーション200は、カードOS100から受け取った暗号化された秘密鍵を秘密鍵記憶領域201に保存する(S1050)。この際、暗号化される前の秘密鍵は削除されることが望ましい。
なお、図3のフローは一例であり、これに限定するものではない。例えば、S1030と、S1050とを同じタイミングで行うようにしても良い。また、S1020の前にS1040およびS1050を実行するようにしても良い。
次に、公開鍵暗号処理を行う際の処理フローについて、図4を用いて説明する。以下、アプリケーション200に決済情報が含まれており、ICカード1がATMなどのカードリーダーとの通信を開始した場合を例に説明を行う。
まず、アプリケーション200の秘密鍵記憶領域201から暗号化された秘密鍵を読み出し、仮想マシン101に暗号化された秘密鍵と、例えば決済情報など、暗号処理対象の情報が渡される(S2000)。ここで、アプリケーションを初めて実行する際に図3に示す処理を実行するように設定されている場合、秘密鍵がまだ暗号化されていないことがある。この場合には、S2000において図3の処理を実行した上で、暗号化された秘密鍵および暗号化対象の情報の受け渡しを行う。
仮想マシン101経由でカードOS100が暗号化された秘密鍵(MAC値)を受け取ると、演算処理部30は暗号化された秘密鍵の最終ブロック(CBC-MAC値)とデータテーブル220の鍵MAC値を比較する(S2010)。
対応するデータがデータテーブル220に存在する場合は、演算用データをデータテーブル220から取得する(S2020)。一方、データテーブル220に対応する値が存在しない場合は、S2030に移行する。
なお、S2010の前に、実行指示されたアプリケーションがプラットフォームに依存したアプリケーションであるか否かを判別し、プラットフォームに依存し、演算データが不要である場合には、S2010の処理を省略し、S2030から処理を実行するようにしても良い。また、S2010において対応するデータがない場合に、図3のS1020の判別を行い、演算処理データが必要な場合はS1030を実行した上で、S2030に移行するようにしても良い。なお、このような処理を行う場合には、データテーブルに演算データが不要であることを示すフラグを立てておくことが望ましい。これにより、フラグがない場合にのみS2010の後にS1020を実行するように制御することができ、不要な処理を省略することができる。
演算処理部30により、S2000においてカードOS100が受け取った暗号化された秘密鍵をOS用暗号鍵120で復号する。決済情報などの暗号化対象の情報とともに、復号された秘密鍵と、S2020やS2030で得られた演算用データが、カードOS100からライブラリ110に受け渡される(S2030)。演算処理部30は、ライブラリ110のプログラムに基づいて、補助演算処理装置40を用いて、決済情報など、暗号化が必要な情報の暗号処理を実行する(S2040)。暗号化された情報は、ライブラリ110からカードOS 100を介してアプリケーション200に受け渡され、通信部50から出力される(S2050)。なお、S2050において、通信部50からの出力に代えて、あるいは出力とともに、アプリケーション200の所定領域に暗号化された情報を保存するようにしても良い。
以上説明したように、図1の例に示すように補助演算処理部40やライブラリ100を用いる場合であっても、秘密鍵のCBC-MAC値をデータテーブル参照値として、補助演算処理部40等へのデータの受け渡しに必要なデータを保存しておくことにより、セキュリティを損なうことなく、処理を高速化することができる。
なお、図1の例では、ライブラリ110を用いる構成を示したが、ライブラリ110を設けずに、補助演算処理部40により暗号処理を行ってもよい。この場合、補助演算処理部40は、例えばモンゴメリ乗算に特化した演算処理装置であるとする。モンゴメリ乗算は、剰余乗算にかかる処理時間を削減できる演算処理であり、これにより公開鍵暗号処理を高速化することが可能である。ここで、ある数をモンゴメリ乗算する場合、モジュラス数NとR=2DL(ただしDLはモジュラス数Nのビット長さ)から定まるR2 mod Nの値が必要になるが、公開鍵暗号処理を始めとする剰余演算の処理について、アプリケーションと仮想マシンのソフトウェアインタフェースとしてR2 mod Nを受け渡すことができない場合、図1や図2を用いて示した例と同様に、毎回の剰余演算処理でR2 mod NをNから計算する必要があり、処理に時間がかかるという問題がある。R2 mod Nの値はNの値によって一意に定まるため、データテーブル220を用い、Nから鍵MAC値を求め、R2 mod Nの値を演算用データとして対応付けておくことで、処理を高速化することができる。なおこのときNの値は秘密情報ではないため、鍵MAC値の演算は耐タンパ性を伴わない方式であっても良く、CBC-MAC暗号化による方式に限らなくても良い。
また、アプリケーション200がICチップ2から削除されたり、ロック機能などにより使用不能になったりした場合、データテーブル220から鍵MAC値230および演算用データ231を削除または無効化するようにしても良い。これにより、データ格納メモリ20の容量を節約できる。なお、データテーブル220に、鍵MAC値および演算用データとともに、アプリケーションを識別するアプリIDを記憶し、アプリケーションを削除する際に、アプリIDを用いて対応した演算用データ等をデータテーブル220から削除するようにしても良い。例えば図5の処理フローに示すように、アプリケーションの削除または無効化の指示が入力されると、アプリケーションのIDと一致するアプリIDがデータテーブル220に存在するかどうかを調べる(S3000)。存在する場合はアプリIDに対応付けられた演算用データと鍵MAC値を削除または無効化する(S3010)。その後、アプリケーションの削除または無効化を行う(S3020)。なお、図5では、S3010の後にS3020を実行する例を示しているが、これに限定するものではない。例えば、S3010およびS3020を同じタイミングで行っても良いし、S3020をS3000の前に実行するようにしても良い。
また、ICチップ2のセキュリティレベルを変更するタイミングでデータテーブル220の作成を行うようにしても良い。ICチップ2のセキュリティレベルの変更とは、例えば、機能の一部に制限がかけられた第一のセキュリティレベル(工場出荷時等)から、任意の機能をアプリケーションから実行できる第二のセキュリティレベル(市場流通時等)への変更である。
以上説明したように、本発明によればセキュリティを保ちつつ、高速で使い勝手の良いICチップおよびこれを搭載したICカードを提供することができる。なお、図1の例では、ICチップをICカードに搭載しているが、これに限定するものではなく、携帯電話等の情報処理装置に搭載するようにしても良い。
1…ICカード、2…ICチップ、10…プログラム格納メモリ、100…カードオペレーティングシステム、101…仮想マシン、110…ライブラリ、120…OS用暗号鍵、20…データ格納メモリ、200…アプリケーション、201…秘密鍵記憶領域、210…アプリケーション、211…秘密鍵記憶領域、220…データテーブル、230…鍵MAC値、231…演算用データ、240…鍵MAC値、241…演算用データ、30…演算処理部、40…補助演算処理部、50…通信部

Claims (8)

  1. 暗号処理を実行するための制御プログラムを記憶する第1のメモリと、
    アプリケーションを記憶する第2のメモリと、
    前記アプリケーションの所定領域に記憶された暗号秘密鍵の少なくとも一部から構成された第1のデータを受け取り、前記制御プログラムに基づいて暗号処理を行う演算処理部と、
    前記演算処理部の制御により所定の演算処理を行う補助演算処理部と、
    を備え、
    前記第1のデータが前記補助演算処理部のソフトウェアインタフェースで規定されたデータ形式に適合していない場合、前記演算処理部は、前記データ形式に適合するように前記第1のデータに処理を施した第2のデータを生成し、前記生成された第2のデータを前記第2のメモリに備えたデータテーブルに記憶するように制御することを特徴とするICチップ。
  2. 前記演算処理部は、前記第1のメモリに記憶された暗号鍵を用いて前記暗号秘密鍵を暗号化するとともに前記第2のデータを生成し、前記暗号化された暗号秘密鍵の一部を識別子として用いて前記第2のデータを前記データテーブルに記憶するように制御することを特徴とする請求項1に記載のICチップ。
  3. 前記演算処理部は、前記アプリケーションを実行する場合に、前記識別子を用いて前記データテーブルから前記第2のデータを読み出し、前記補助演算処理部に受け渡すように制御することを特徴とする請求項2に記載のICチップ。
  4. 前記演算処理部は、前記第2のメモリに前記アプリケーションを新たに記憶した場合、あるいは前記アプリケーションを初めて実行する場合に、前記暗号秘密鍵の暗号化および前記第2のデータの生成を行うことを特徴とする請求項2に記載のICチップ。
  5. 前記演算処理部は、前記暗号化された暗号秘密鍵を前記所定領域に記憶するように制御することを特徴とする請求項2に記載のICチップ。
  6. 前記第1のメモリは仮想マシンを有し、前記演算処理部は前記仮想マシンを介して前記第1のデータを受け取ることを特徴とする請求項1に記載のICチップ。
  7. 暗号処理を実行するための制御プログラムを記憶する第1のメモリと、
    アプリケーションを記憶する第2のメモリと、
    前記アプリケーションの所定領域に記憶された暗号秘密鍵の少なくとも一部から構成された第1のデータを受け取り、前記制御プログラムに基づいて暗号処理を行う演算処理部と、
    前記演算処理部の制御により所定の演算処理を行う補助演算処理部と、
    を備え、
    前記第1のデータが前記補助演算処理部のソフトウェアインタフェースで規定されたデータ形式に適合していない場合、前記演算処理部は、前記データ形式に適合するように前記第1のデータに処理を施した第2のデータを生成し、前記生成された第2のデータを前記第2のメモリに備えたデータテーブルに記憶するように制御することを特徴とする情報処理装置。
  8. 前記演算処理部は、前記第1のメモリに記憶された暗号鍵を用いて前記暗号秘密鍵を暗号化するとともに前記第2のデータを生成し、前記暗号化された暗号秘密鍵の一部を識別子として用いて前記第2のデータを前記データテーブルに記憶するように制御することを特徴とする請求項7に記載の情報処理装置。
JP2009099519A 2009-04-16 2009-04-16 Icチップおよびこれを搭載した情報処理装置 Expired - Fee Related JP5235764B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009099519A JP5235764B2 (ja) 2009-04-16 2009-04-16 Icチップおよびこれを搭載した情報処理装置
KR1020100001375A KR101070580B1 (ko) 2009-04-16 2010-01-07 Ic 칩 및 이것을 탑재한 정보 처리 장치
EP10250130A EP2241996A1 (en) 2009-04-16 2010-01-27 IC chip and information processing apparatus mounting IC chip
US12/694,371 US20100266121A1 (en) 2009-04-16 2010-01-27 Ic chip and information processing apparatus mounting ic chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009099519A JP5235764B2 (ja) 2009-04-16 2009-04-16 Icチップおよびこれを搭載した情報処理装置

Publications (2)

Publication Number Publication Date
JP2010252059A true JP2010252059A (ja) 2010-11-04
JP5235764B2 JP5235764B2 (ja) 2013-07-10

Family

ID=42040474

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009099519A Expired - Fee Related JP5235764B2 (ja) 2009-04-16 2009-04-16 Icチップおよびこれを搭載した情報処理装置

Country Status (4)

Country Link
US (1) US20100266121A1 (ja)
EP (1) EP2241996A1 (ja)
JP (1) JP5235764B2 (ja)
KR (1) KR101070580B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595511B2 (en) 2011-06-29 2013-11-26 International Business Machines Corporation Securely managing the execution of screen rendering instructions in a host operating system and virtual machine

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103959245B (zh) * 2011-12-02 2016-08-24 英派尔科技开发有限公司 作为服务的集成电路

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01224873A (ja) * 1988-01-28 1989-09-07 Weytec Corp コプロセッサにおいて倍精度ベクトル演算を行う方法及び装置
JPH1063580A (ja) * 1996-08-27 1998-03-06 Dainippon Printing Co Ltd Icカード
JP2001195555A (ja) * 2000-01-12 2001-07-19 Hitachi Ltd Icカードとマイクロコンピュータ
JP2001266103A (ja) * 2000-01-12 2001-09-28 Hitachi Ltd Icカードとマイクロコンピュータ
JP2001282543A (ja) * 2000-03-29 2001-10-12 Hitachi Ltd Icカードアプリケーションのローディング方法及びローディングシステム
JP2004282404A (ja) * 2003-03-14 2004-10-07 Canon Inc デジタル署名生成装置、方法、コンピュータプログラム、およびコンピュータ読み取り可能な記憶媒体
JP2005284845A (ja) * 2004-03-30 2005-10-13 Hitachi Ltd 図書貸出履歴管理方法、図書館システム、利用者端末
JP2007249881A (ja) * 2006-03-20 2007-09-27 Dainippon Printing Co Ltd Icカード、および、アプリケーションの書込み方法
JP2008033547A (ja) * 2006-07-27 2008-02-14 Toshiba Corp 情報記憶媒体及び情報記憶媒体処理装置
WO2009005089A1 (ja) * 2007-07-03 2009-01-08 Nec Corporation データ暗号化/復号化処理方法およびデータ処理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216227B1 (en) * 1998-06-29 2001-04-10 Sun Microsystems, Inc. Multi-venue ticketing using smart cards
TW536672B (en) * 2000-01-12 2003-06-11 Hitachi Ltd IC card and microcomputer
JP4729839B2 (ja) * 2003-05-20 2011-07-20 株式会社日立製作所 Icカード

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01224873A (ja) * 1988-01-28 1989-09-07 Weytec Corp コプロセッサにおいて倍精度ベクトル演算を行う方法及び装置
JPH1063580A (ja) * 1996-08-27 1998-03-06 Dainippon Printing Co Ltd Icカード
JP2001195555A (ja) * 2000-01-12 2001-07-19 Hitachi Ltd Icカードとマイクロコンピュータ
JP2001266103A (ja) * 2000-01-12 2001-09-28 Hitachi Ltd Icカードとマイクロコンピュータ
JP2001282543A (ja) * 2000-03-29 2001-10-12 Hitachi Ltd Icカードアプリケーションのローディング方法及びローディングシステム
JP2004282404A (ja) * 2003-03-14 2004-10-07 Canon Inc デジタル署名生成装置、方法、コンピュータプログラム、およびコンピュータ読み取り可能な記憶媒体
JP2005284845A (ja) * 2004-03-30 2005-10-13 Hitachi Ltd 図書貸出履歴管理方法、図書館システム、利用者端末
JP2007249881A (ja) * 2006-03-20 2007-09-27 Dainippon Printing Co Ltd Icカード、および、アプリケーションの書込み方法
JP2008033547A (ja) * 2006-07-27 2008-02-14 Toshiba Corp 情報記憶媒体及び情報記憶媒体処理装置
WO2009005089A1 (ja) * 2007-07-03 2009-01-08 Nec Corporation データ暗号化/復号化処理方法およびデータ処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595511B2 (en) 2011-06-29 2013-11-26 International Business Machines Corporation Securely managing the execution of screen rendering instructions in a host operating system and virtual machine

Also Published As

Publication number Publication date
JP5235764B2 (ja) 2013-07-10
KR20100114817A (ko) 2010-10-26
KR101070580B1 (ko) 2011-10-05
US20100266121A1 (en) 2010-10-21
EP2241996A1 (en) 2010-10-20

Similar Documents

Publication Publication Date Title
US9734355B2 (en) System and method for an efficient authentication and key exchange protocol
CN100487715C (zh) 一种数据安全存储系统和装置及方法
TW413988B (en) Cryptographic system
US8762742B2 (en) Security architecture for using host memory in the design of a secure element
CN101256613B (zh) 无需制造者和用户知道彼此的加密信息的安全处理器系统
CN108345806B (zh) 一种硬件加密卡和加密方法
CN1269071C (zh) 存储卡
Sarmenta et al. Virtual monotonic counters and count-limited objects using a TPM without a trusted OS
TWI232664B (en) Method of obtaining a credential, physical token device, computing device and machine readable medium
CN109768862B (zh) 一种密钥管理方法、密钥调用方法及密码机
CN108768963B (zh) 可信应用与安全元件的通信方法和系统
CN103210396A (zh) 包括用于保护敏感代码和数据的架构的方法和装置
WO2023240866A1 (zh) 密码卡及其根密钥保护方法、计算机可读存储介质
JP5235764B2 (ja) Icチップおよびこれを搭載した情報処理装置
CN110740036A (zh) 基于云计算的防攻击数据保密方法
KR101656092B1 (ko) 비동기적인 인증을 갖는 보안 컴퓨팅 시스템
CN110677253A (zh) 基于非对称密钥池和ecc的抗量子计算rfid认证方法及系统
JP2004139242A (ja) Icカード、icカード発行システム及びicカード発行方法
KR101054075B1 (ko) 보호키 사용 제한 방법 및 장치
CN100462992C (zh) 生产信息安全设备的方法和系统
CN110601845B (zh) 基于对称密钥池和ecc的抗量子计算rfid认证方法及系统
KR101188659B1 (ko) 플레이어 및 카트리지 간의 디지털 콘텐츠 보호 방법
JP7268529B2 (ja) 電子機器
JP2004248330A (ja) 暗号装置、暗号鍵生成方法、暗号鍵管理方法
CN117592079A (zh) 机密计算环境创建方法、密码运算方法及相关设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130208

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130326

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

Free format text: PAYMENT UNTIL: 20160405

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees