JP5022434B2 - 大容量メモリを支援するicチップ及び支援方法 - Google Patents

大容量メモリを支援するicチップ及び支援方法 Download PDF

Info

Publication number
JP5022434B2
JP5022434B2 JP2009500298A JP2009500298A JP5022434B2 JP 5022434 B2 JP5022434 B2 JP 5022434B2 JP 2009500298 A JP2009500298 A JP 2009500298A JP 2009500298 A JP2009500298 A JP 2009500298A JP 5022434 B2 JP5022434 B2 JP 5022434B2
Authority
JP
Japan
Prior art keywords
memory
data
command
apdu
processor
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.)
Expired - Fee Related
Application number
JP2009500298A
Other languages
English (en)
Other versions
JP2009529745A (ja
Inventor
キョン−テ キム
ジュン−チェ ナ
ミン−ジョン キム
Original Assignee
ケーティーフリーテル・カンパニー・リミテッド
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
Priority claimed from KR1020060024337A external-priority patent/KR20070094108A/ko
Priority claimed from KR1020060026954A external-priority patent/KR100738032B1/ko
Application filed by ケーティーフリーテル・カンパニー・リミテッド filed Critical ケーティーフリーテル・カンパニー・リミテッド
Publication of JP2009529745A publication Critical patent/JP2009529745A/ja
Application granted granted Critical
Publication of JP5022434B2 publication Critical patent/JP5022434B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/077Constructional details, e.g. mounting of circuits in the carrier
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/077Constructional details, e.g. mounting of circuits in the carrier
    • G06K19/0772Physical layout of the record carrier
    • G06K19/07732Physical layout of the record carrier the record carrier having a housing or construction similar to well-known portable memory devices, such as SD cards, USB or memory sticks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Description

本発明は、ICチップに関するもので、より詳細には、大容量メモリを支援するICチップ及び支援方法に関する。
従来のICチップは、図1に示すようにICチップメモリを含む。ICチップメモリは、コード(Code)格納のためのROMメモリ、演算支援のためのRAMメモリ、及びアプレット(Applet)格納のためのEEPROMメモリを含むことができる。
このようなICチップ基盤のサービスが活性化され、メモリサイズに対する要求事項が多くなっているが、ICチップメモリのEEPROMは1Mbyte以上を実現し難いという短所があった。このため、既存のICチップにフラッシュ(Flash)メモリを導入して大容量メモリを支援するICチップを構成しようとする動きがICチップ製造業者から出てきている。
しかし、従来の大容量メモリを支援するICチップは、図1に示すように、物理的に一つのチップ上に実現されているだけで、ICチップと大容量メモリとの統合された機能は提供されなかった。これにより、ICチップのセキュリティ性を活用して大容量メモリにデータを格納することや、ICチップのメモリにおける制約事項を大容量メモリを活用して補うことができないという問題点があった。
一方、GSM(Global System for Mobile communication)電話機またはW−CDMA(Wide Code Division Multi Access)電話機のような移動通信端末には、SIM(Subscriber Identity Module)カードまたはUSIM(Universal Subscriber Identity Module)カードのようなICチップが使用される。
このようなICチップには、移動通信加入者情報、個人情報、金融情報などセキュリティを必要とするデータをコプロセッサ(Co-Processor)によるセキュリティアルゴリズムを用いて暗号化して格納する。
しかし、従来のICチップは、上述したように格納容量に限界があり、大量のデータを格納できないという問題点があった。
一方、端末には、様々な情報を格納するために主にフラッシュメモリが利用される。フラッシュメモリは、ICチップのメモリに比べて、大量のデータを格納するのに充分であり、格納容量を拡大するための技術開発の速度も非常に速い。
しかし、このようなフラッシュメモリには、ICチップとは異なって、データを暗号化するためのセキュリティアルゴリズムやコプロセッサが内蔵されていないため、格納されたデータのセキュリティが非常に脆弱であった。また、フラッシュメモリが、格納されたデータのセキュリティ性を確保するためにセキュリティアルゴリズムを端末自体で実行する場合、端末機器別に暗号化方法が異なるため、復号化の互換性が保障されないという問題点があった。
上述したように、ICチップはセキュリティ性に優れるが、格納容量には限界があり、フラッシュメモリは格納容量は大きいが、データのセキュリティ性が脆弱で、移動通信端末自体のセキュリティアルゴリズムではデータ復号化の互換性が保証されないという問題点がある。
本発明は、上述した従来技術の問題点を解決するためになされたものであって、ICチッププロセッサが大容量メモリに直接アクセスできる大容量メモリ支援ICチップ及び支援方法を提供することを目的とする。特に、ICチップはホスト(Host)400と高速通信することができる。
本発明の他の目的は、端末で移動通信加入者情報、個人情報、金融情報などセキュリティを必要とするデータを暗号化しながらも、データ復号化の互換性が保障される大容量メモリ支援ICチップ及び支援方法を提供することにある。
本発明の一実施形態によれば、大容量メモリを支援するICチップが提供される。
本発明の一実施例によるICチップは、コマンドを伝達するコマンドラインと、データトークンを伝達するデータラインと、データを格納するメモリと、接続状態に応じて上記メモリとデータをやり取りするプロセッサと、上記プロセッサの制御により上記メモリとの接続状態設定を要求するコマンドを上記コマンドライン上に出力するバスコントローラと、上記コマンドラインで受信されたコマンドに従って上記データライン、上記メモリと上記プロセッサとの間の接続を変更するメモリカードコントローラと、を含むことができる。
本発明の他の実施例によるICチップは、ホストから制御信号及びデータが入出力される入出力端子と、上記入出力されるデータを暗号化及び復号化するセキュリティアルゴリズムが格納される第1格納部と、上記入出力端子を通してデータ暗号化要求信号を受信して上記データを上記セキュリティアルゴリズムを用いて暗号化し、上記入出力端子を通してデータ復号化要求信号を受信して上記暗号化されたデータを上記セキュリティアルゴリズムを用いて復号化するプロセッサと、を含むことができる。
本発明の他の実施形態によれば、大容量メモリを支援するICチップが含まれた移動通信端末が提供される。
本発明の一実施例による移動通信端末は、ICチップを用いてデータを暗号化して格納し、暗号化されたデータを復号化して用いる移動通信端末であって、上記ICチップは、上記移動通信端末と電気的に接続する入出力端子と、上記データを暗号化及び復号化するセキュリティアルゴリズムが格納される第1格納部と、上記入出力端子を通して上記移動通信端末からデータ暗号化要求信号を受けて上記データを上記セキュリティアルゴリズムを用いて暗号化し、上記入出力端子を通して移動通信端末からデータ復号化要求信号を受けて上記暗号化されたデータを上記セキュリティアルゴリズムを用いて復号化するプロセッサと、上記プロセッサにより暗号化されたデータを格納し、上記第1格納部より格納容量の大きい第2格納部と、を含むことができる。
本発明のまた他の実施形態によれば、ICチップの接続状態の変更方法が提供される。
本発明の一実施例によるICチップの接続状態の変更方法は、コマンドライン及びデータラインを通してホストと通信し、メモリ及びプロセッサに接続されたメモリカードコントローラにおいて、上記コマンドラインを通してコマンドを受信するステップと、上記コマンドがAPDUコマンドである場合には、上記プロセッサが上記データラインを通したAPDUの送受信を許可するステップと、上記コマンドが接続コマンドである場合には、上記プロセッサと上記メモリを接続させるステップと、を含むことができる。
本発明のまた他の実施形態によれば、移動通信端末におけるデータセキュリティ方法が提供される。
本発明の一実施例による移動通信端末におけるデータセキュリティ方法は、移動通信端末からデータ暗号化要求信号を受信する第1ステップと、上記移動通信端末からセキュリティキーが入力され認証される第2ステップと、上記第2ステップでセキュリティキーの認証が成功した場合は第1格納部に格納されたセキュリティアルゴリズムを用いて上記データを暗号化する第3ステップと、上記暗号化されたデータを上記第1格納部より格納容量の大きい第2格納部に格納する第4ステップと、を含むことができる。
本発明によれば、ICチッププロセッサが大容量メモリに直接アクセスできる大容量メモリ支援ICチップ及び支援方法を提供することができる。
以下、本発明の実施例を添付した図面に基づいて説明する。
以下ではMMC通信プロトコルを採用した実施例を中心に説明するが、本発明の技術的思想は、ICチップと端末との間で高速通信プロトコルを支援できるものであれば、高速通信プロトコルの種類に制限されることなく採用可能である。
図2は、本発明を概略的に説明するための例示図である。本発明によるICチップは、ISO7816標準に従って端末との低速通信を行い、さらにフラッシュメモリのような大容量メモリを含むことができ、高速インターフェースを通して外部と高速通信を行うことができる。また、ICチップは、SIM(Subscriber Identity Module)、USIM(Universal Subscriber Identity Module)、UIM(User Identity Module)、R−UIM(Removable User Identity Module)などの移動通信加入者識別用ICチップ及び金融チップなどの電子商取引用ICチップのいずれか一つであることができる。ICチップは、低速通信と高速通信の両方ともを行うことができ、低速通信用トークンを高速通信用トークンにカプセル化(Encapsulation)して高速通信だけを行うこともできる。
高速通信プロトコルとしてMMC(MultiMediaCard)プロトコルが採用された場合には、 二つのラインを通してホスト400とICチップとが通信する。ホスト400からメモリカードコントローラ(Memory Card Controller)100へのコマンド転送及びメモリカードコントローラ100からホスト400への応答転送はコマンドライン(CMD)を通して行われる。ホスト400とメモリカードコントローラ100との間のデータ転送はデータライン(DATA)を通して行われる。
図2に示されたホスト400とメモリカードコントローラ100との間の接続はデータラインである。メモリカードコントローラ100は、ICチッププロセッサ(IC Chip Processor)200、メモリ300、及びホスト400の相互間の接続状態を変更することにより、ICチッププロセッサ200がホスト400またはメモリ300に接続できるようにする。通常、メモリカードコントローラ100は、メモリ300と直接アクセスできる接続状態を維持する。すなわち、データラインを通して入力されたデータはメモリ300に格納されるか、またはメモリ300から読み取られたデータはデータラインを通してホスト400へ転送される。
メモリカードコントローラ100がメモリ300に対するアクセス権限をICチッププロセッサ200に渡すか、またはデータラインを通して受信したデータトークンをICチッププロセッサ200に渡すためには、メモリカードコントローラ100内部の接続状態を変更しなくてはならない。ホスト400とメモリカードコントローラ100との間のデータラインは、スイッチ1がオン(ON)状態であり、かつ、スイッチ2及びスイッチ3がオフ(OFF)状態であれば、メモリ300に接続される。この接続状態で、メモリカードコントローラ100はメモリ300にデータを書き込むことやデータを読み取ることができる。一方、データラインは、スイッチ2がオン状態であり、かつ、スイッチ1及びスイッチ3がオフ状態であれば、ICチッププロセッサ200に接続される。ICチッププロセッサ200は、スイッチ3がオン状態であり、かつ、スイッチ1及びスイッチ2がオフ状態であればメモリ300に接続される。
メモリカードコントローラ100の接続状態はコマンドラインを通して受信されるコマンドに従って変更される。コマンドは表1に示すように四つに区分される。
Figure 0005022434
NON APDUコマンドは、ホスト400からメモリカードコントローラ100に転送されるコマンド、及び、メモリカードコントローラ100からホスト400に転送される応答(Response)であって、高速通信プロトコルにより定義された基本的なコマンド及び応答を含む。NON APDUコマンドを受信すると、メモリカードコントローラ100はスイッチ1をオンし、スイッチ2及び3をオフしてデータラインを通して受信されたデータトークンをメモリ300に格納するか、またはメモリ300に格納されたデータをデータラインを通してホスト400へ転送する。
APDUコマンドは、ホスト400で生成され、メモリカードコントローラ100に転送されるコマンドであって、APDUをデータラインを通して送受信するために定義されたコマンドである。APDUコマンドは、ホスト400に接続されたICチップホスト(図示せず)からAPDUが入力されると、生成される。APDUコマンドとこれに対する応答(APDU Response)の間にデータラインを通してホスト400から、またはホスト400へ一つ以上のデータトークンが伝達される。
APDUコマンドに従って、データラインを通して転送されるデータトークンは、ホスト400またはメモリカードコントローラ100によりカプセル化(encapsulation)されたコマンドAPDU(C−APDU)または応答APDU(R−APDU)を含む。
C−APDUまたはR−APDUが48ビット以下である場合には、一つのデータトークンにより伝達でき、それ以上である場合には、一つのデータストリーム(sequential read/write operation)または複数のデータトークン(multiple block read/write operation)により伝達できる。
APDUコマンドを受信すると、メモリカードコントローラ100は、スイッチ2をオンし、スイッチ1及びスイッチ3をオフして、データラインを通して受信されたデータトークンをICチッププロセッサ200に転送する。ここで、データトークンはカプセル開放(decapsulation)過程でC−APDUに変換された後にICチッププロセッサ200に転送され、R−APDUはデータトークンにカプセル化されてホスト400に転送されることができる。
接続コマンドは、ICチッププロセッサ200で生成され、メモリカードコントローラ100に転送されるコマンドであって、ICチッププロセッサ200とメモリ300との間でデータを送受信するためのコマンドである。接続コマンドを受信すると、メモリカードコントローラ100はスイッチ3をオンし、スイッチ1及び2をオフして、ICチッププロセッサ200はメモリ300にデータを書き込むことやデータを読み取ることができる。
解除コマンドは、ICチッププロセッサ200で生成され、メモリカードコントローラ100に転送されるコマンドであって、ICチッププロセッサ200とメモリ300との間でデータ送受信が完了されたことをメモリカードコントローラ100に通知するためのコマンドである。解除コマンドが受信されると、メモリカードコントローラ100は接続コマンドが受信される前の接続状態または予め指定された接続状態に戻る。他の実施例では、解除コマンドの代りに、ICチッププロセッサ200とメモリ300との間でデータが送受信されたか否かを確認してメモリカードコントローラ100が以前の接続状態または予め指定された接続状態に戻るか、または一定時間の経過後、メモリカードコントローラ100が以前の接続状態または予め指定された接続状態に戻ることができる。
以上、高速通信プロトコルとしてMMCプロトコルを用いた場合を例に挙げて説明したが、USBプロトコルを用いる場合にも容易に採用できることは明らかである。USBプロトコルを用いてAPDUを送受信する方式はISO7816−12を参照する。一方、本発明の特徴である、APDUを含んだデータトークンをICチッププロセッサに伝達するために、高速通信プロトコルを支援するコントローラ(例えば、メモリカードコントローラ100)の接続状態を変更する追加コマンド及びICチッププロセッサがメモリにアクセスできるようにする追加コマンドを定義して使用することは、高速通信プロトコルとしてUSBを使用する場合においても、本発明が属する分野で通常の知識を有する者であれば容易に実現できる。
ICチッププロセッサ200は、セキュリティアルゴリズムを駆動してメモリ300に暗号化されたデータを格納し、メモリに暗号化されて格納されたデータを復号化してホスト400に提供することができる。ICチッププロセッサ200は、セキュリティアルゴリズムを担当するコプロセッサ(Co-Processor)を含むことができる。
ICチッププロセッサ200は、ホスト400からコマンド信号を受信してメモリ300にデータを書き込むことやデータを読み取ることを行う場合、該データに対するセキュリティ処理を行う。これについては、図9乃至図12を参照してより詳細に説明する。
図3は、本発明の一実施例によるICチップを示すブロック図である。
メモリカードコントローラ100及びICチッププロセッサ200は、すべてICチップに含まれる。メモリ300が、ICチップ及びメモリ300の二つのモジュールを一つの統合ICチップで実現したコンビタイプである場合には、ICチップに含まれてもよく、それぞれのモジュールがインターフェースを通して連動するハイブリッドタイプである場合にはICチップに含まれなくてもよい。
メモリカードコントローラ100とは高速通信プロトコルによりデータを送受信するホスト400、及び、ホスト400に接続されてAPDUをICチップのICチッププロセッサ200と送受信するICチップホストは端末に含まれる。
ここで、端末は無線通信機能付き携帯電話のような移動通信端末、PDA、またはノートパソコンのような携帯用情報処理装置であることができる。
ICチップホスト及びICチッププロセッサ200は、転送側からAPDUを高速通信プロトコルが支援するデータトークンにカプセル化(encapsulation)して転送すれば、受信側はこれをカプセル開放(decapsulation)することにより相互通信する。
本発明の一実施例によるICチップは、大容量のデータを格納するメモリ300と、メモリにおけるデータ読み取り/書き込み、及び接続状態を変更して他の構成部間のデータを中継するメモリカードコントローラ100と、メモリカードコントローラ100を通してICチップホストと通信し、メモリのデータの読み取りや書き込み動作を行うICチッププロセッサ200と、ICチッププロセッサ200の制御によりメモリカードコントローラ100がICチッププロセッサ200のメモリにアクセスできるようにするバスコントローラ210とを含むことができる。
接続状態を変更してICチップの他の構成部間の通信を中継するメモリカードコントローラ100は、インターフェースドライバ110、カードインターフェースコントローラ120、スイッチ130、レジスタ140、メモリコアインターフェース150、及び電源検知部160を含む。
インターフェースドライバ110は、ICチップの一側に位置したデータラインピン及びコマンドラインピンにより電気的に接続されたホスト400との間で、データライン及びコマンドラインを通してデータトークン及びコマンドを送受信する。
それぞれのデータライン及びコマンドラインを通して物理的レベルで送信された電気的信号は、インターフェースドライバ110によりデータトークン及びコマンドにそれぞれカプセル化されて、カードインターフェースコントローラ120に伝達される。
一方、カードインターフェースコントローラ120から出力されたデータトークン及びコマンドも物理的レベルの電気的信号にカプセル開放されて、データライン及びコマンドラインを通してホスト400に転送される。
カードインターフェースコントローラ120は、ホスト400から受信したコマンドの種類に応じて、それに対応する動作を行う。すなわち、コマンドの種類に応じて、接続状態が変更される必要がある場合は接続状態の変更信号を出力する。
NON APDUコマンドを受信した場合、カードインターフェースコントローラ120は、高速通信プロトコルによる基本動作である、メモリ300のデータの読み取り及び書き込み動作を行い、スイッチ130を制御してカードインターフェースコントローラ120がメモリ300にアクセスできる接続状態を維持する(表1参照)。
ここで、メモリ300は、メモリカードコントローラ100のみにより利用可能なメモリカード領域と、ICチッププロセッサ200のみによりアクセス可能なICチップ領域とに分けることができ、NON APDUコマンドにより、カードインターフェースコントローラ120がアクセスするメモリ300の特定領域はメモリカード領域に限定される。
また、メモリ300は、ICチッププロセッサ200によりセキュリティアルゴリズムを用いてセキュリティデータが格納されるセキュリティメモリ領域、セキュリティアルゴリズムを用いない、一般のデータが格納されるユーザメモリ領域、及びメモリ領域を管理するための情報が格納されるシステムメモリ領域に分けることができる。これについては、図9を参照してより詳細に説明する。
APDUコマンドを受信した場合、カードインターフェースコントローラ120は、スイッチ130を制御し、データラインを通して受信されるデータトークンのコンテンツがICチッププロセッサ200に伝達されるようにする(表1参照)。
APDUコマンドを受信した後、データラインを通して受信されるデータトークンは、メモリーカードホスト400から生成されたC−APDUを含んでおり、高速通信プロトコルによりカプセル化されている。
カードインターフェースコントローラ120は、データトークンからヘッダ及びテールを除去してコンテンツだけを出力する。出力されたコンテンツはC−APDUであり、スイッチ130によりICチッププロセッサ200に伝達される。
複数のデータトークンにより一つのC−APDUが転送される場合、カードインターフェースコントローラ120は、コンテンツを順次結合して完全なC−APDUが生成されたら、ICチッププロセッサ200に伝達することができる。
複数のデータトークンにより一つのC−APDUが転送される場合は、C−APDUがコマンドを含んでおり、一つのデータトークンにカプセル化できない場合である。
APDUコマンドにより、カードインターフェースコントローラ120の出力がICチッププロセッサ200に適用されるようにスイッチ130の接続状態が維持された後、データラインを通して受信されたC−APDUがICチッププロセッサ200に伝達される。
C−APDUを受信したICチッププロセッサ200は、それに対応する処理を行う。処理が終わったら、ICチッププロセッサ200は処理結果のR−APDUをカードインターフェースコントローラ120に伝達する。
R−APDUを受信したカードインターフェースコントローラ120は、APDU応答をコマンドラインを通してホスト400に伝達する。R−APDUに応答データが含まれていない場合は、R−APDUがAPDU応答に含まれて転送されることができる。しかし、R−APDUに応答データが含まれている場合は、応答データの存在を示す応答データ識別子をAPDU応答に含ませることができる。応答データ識別子を受信したホスト400は、データ読み取りコマンドに従ってR−APDUをメモリカードコントローラ100から読み取ることができる。
APDU応答が転送されると、カードインターフェースコントローラ120は、次のコマンドを受信するためにスイッチ130の接続状態を変更することができる。APDU応答の転送前または転送後のスイッチ130の接続状態は、予め設定されたポリシーにより変更される。
第1に、スイッチ130の接続状態は、次のコマンドが受信されるまで現在状態を維持できる。したがって、APDU応答転送後、NON APDUコマンドまたは接続コマンドが受信されてからスイッチ130の接続状態が変更可能になる。第2に、スイッチ130は、APDUコマンド受信前の接続状態に変更されることができる。したがって、カードインターフェースコントローラ120とメモリ300との間、またはICチッププロセッサ200とメモリ300との間の接続状態に戻る。第3に、予め決められている接続状態にしか戻ることができない。
従って、NON APDUコマンドによる接続状態を基本接続状態と設定した場合、APDU応答転送前後及び接続コマンドによる処理終了後にカードインターフェースコントローラ120とメモリ300との間の接続状態に戻る。
接続コマンドを受信した場合、カードインターフェースコントローラ120は、スイッチ130を制御してICチッププロセッサ200とメモリ300とが接続できるようにする(表1参照)。
接続コマンドは、ICチッププロセッサ200の制御信号によりバスコントローラ210を生成し、生成された接続コマンドは、バスコントローラ210が接続されたコマンドラインを通してカードインターフェースコントローラ120に伝達される。
カードインターフェースコントローラ120はスイッチ130の接続状態をICチッププロセッサ200とメモリ300との間でデータの送受信ができるように変更する。ICチッププロセッサ200は、スイッチ130で接続されたメモリ300の特定アドレスにアクセスして、格納されたデータを読み取ったり書き込んだりする。
ICチッププロセッサ200が、メモリ読み取り/書き込み作業の終了したことをカードインターフェースコントローラ120に知らせる必要がある場合、バスコントローラ210を通して解除コマンドを出力する。
カードインターフェースコントローラ120は、解除コマンドに従って、ICチッププロセッサ200からR−APDUを受信するために、または次のコマンドによる処理を行うために、スイッチ130の接続状態を変更する。
ICチッププロセッサ200がホスト400から転送されたC−APDUを処理するためにメモリにアクセスした場合にはR−APDUが転送されなければならないため、カードインターフェースコントローラ120はスイッチを制御して接続状態を変更することによりICチッププロセッサ200からR−APDUを受信する。
一方、ICチッププロセッサ200がR−APDUを生成するためにメモリ300にアクセスした場合を除き、カードインターフェースコントローラ120は、現在の接続状態を維持するか、予め決められた接続状態に転換する。
R−APDUの生成のほか、ICチッププロセッサ200がメモリ300にアクセスする理由は、メモリ300のデータをセキュリティアルゴリズムを用いて暗号化/復号化したり、ファイル管理したりするなど、多様な場合が存在できる。
特に、別途のセキュリティ機能が具備されない高速通信プロトコルの場合は、セキュリティアルゴリズムを用いてデータセキュリティを確保できる。このために、ホスト400またはメモリカードコントローラ100は、メモリ300の特定領域などにアドレスを指定してデータセキュリティ処理を行うようにするC−APDUを生成し、ICチッププロセッサ200に適用することができる。ここで、メモリ300の特定領域とは、メモリカードコントローラ100のみによりアクセスできるメモリカード領域であることができる。
データセキュリティ処理を行うためにC−APDUを受信したICチッププロセッサ200は、該領域にアクセスするための接続コマンドをバスコントローラ210を通して出力し、接続状態の変更を要求する。その後、ICチッププロセッサ200は、特定領域に対するデータセキュリティ処理を行うことができる。これについては、図9乃至図12を参照してより詳細に説明する。
他の実施例で、カードインターフェースコントローラ120は所定時間(例えば、一周期)が経過すると、ICチッププロセッサ200とメモリ300との間の接続状態を解除し、以前の接続状態または予め決められた接続状態に戻るようにスイッチ130を制御する。
また他の実施例では、カードインターフェースコントローラ120は、ICチッププロセッサ200とメモリ300との間のデータ送受信状態をモニタリングして、データのやり取りがもうない場合は、以前の接続状態または予め決定された接続状態に戻るようにスイッチ130を制御する。
スイッチ130は、カードインターフェースコントローラ120、ICチッププロセッサ200、及びメモリ300とそれぞれ結合し、カードインターフェースコントローラ120の制御により三つの構成部間のデータ送受信を可能とさせる。
スイッチ130は、多様な方式で実現でき、その構成は、本発明が属する分野で通常の知識を有する者であれば誰でも容易に実現することができる。スイッチ130の接続状態の変更方式は図2及び表1を参照する。
レジスタ140は、基本レジスタ(mandatory)と選択レジスタ(optional)で構成され、カードインターフェースコントローラ120の動作に必要とされる状態情報を格納する。レジスタ140は、識別のためのカード個別番号を格納する128ビットのCID(Card Identification number)と、初期化過程でホスト400により動的に割り当てられたカードシステムアドレスを格納する16ビットのRCA(Relative Card Address)と、カード動作状態に関する情報を格納する128ビットのCSD(Card Specific Data)と、カードの電圧形式を識別する特定の放送コマンド(broadcast command)により用いられる32ビットのOCR(Operation Condition Register)と、を含み、選択的にカードの出力ドライバを構成する16ビットのDSR(Driver Stage Register)をさらに含むことができる。
メモリコアインターフェース150は、カードインターフェースコントローラ120またはICチッププロセッサ200から要求されたメモリの特定アドレスにアクセスしてデータを読み取ったり書き込んだりする。
電源検知部160は、ICチップが端末のソケットに挿入されると、印加された電源を検知し、ICチップの構成部を駆動させるリセット信号(Reset signal)を生成して各構成部に適用する。
ICチッププロセッサ200は、ICチップの基本動作を行うが、基本動作の実行に必要とされるモジュール(例えば、コード、アプレットなど)及びデータは、メモリ300、例えば、メモリ300のシステムメモリ領域にアクセスして得ることができる。
メモリカードコントローラ100を通してホスト400からC−APDUを受信すると、ICチッププロセッサ200はメモリ300にアクセスする必要があるかどうかを、C−APDUの種類及びC−APDUにデータが含まれているか否かに基づいて判断する。
判断の結果、メモリ300からデータを読み取ったり書き込んだりする必要がある場合、バスコントローラ210に制御信号が出力される。制御信号から生成された接続コマンドに従ってICチッププロセッサ200とメモリ300とが接続されると、ICチッププロセッサ200は、予め割り当てられたメモリ300のICチップ領域に従来方式で接続してデータを読み取ったり書き込んだりする。
ここで、メモリ300のICチップ領域は、ICチッププロセッサ200のみでアクセスできるように設定された領域であって、モジュール及びデータが格納される。ここで、ICチップ領域は、従来ICチップのメモリ管理システムのアドレス体系がそのまま採用されることが好ましい。この場合、ICチッププロセッサ200は、従来メモリアドレスをそのまま使用してもメモリ300を自由に利用できる。勿論、大容量のデータを書き込むためにはより多いアドレスが必要となるため、それだけアドレス体系を拡張することができる。
メモリ300を用いた作業の終了後、ICチッププロセッサ200は解除コマンドを発生するようにバスコントローラ210を制御し、メモリ300のアクセス権限をカードインターフェースコントローラ120に渡す。
勿論、他の実施例では、ICチッププロセッサ200が予め決められた所定時間だけメモリ300へアクセスできる権限を与えるか、または、ICチッププロセッサ200とメモリ300との間のデータやり取り状態をモニタリングして、ICチッププロセッサ200の作業が終了したか否かを決定することもできる。ICチッププロセッサ200は、作業結果をR−APDUで構成し、カードインターフェースコントローラ120に伝達する。
判断の結果、メモリ300からデータを読み取ったり書き込んだりする必要がない場合、ICチッププロセッサ200は、接続コマンドを生成せず、作業結果をカードインターフェースコントローラ120に伝達する。
一方、ICチッププロセッサ200は、すべての作業実行に必要なメモリリソースをメモリ300を通して確保でき、基本動作実行時の演算結果をRAM(図示せず)に一時的に格納することもできる。
バスコントローラ210は、ICチッププロセッサ200とコマンドラインとの間に結合され、ICチッププロセッサ200からの制御信号により接続コマンドまたは解除コマンドを生成してメモリカードコントローラ100に伝達する。
メモリ300は、電気的にデータを書き込んだり削除したりすることができるフラッシュメモリのような固体記憶素子、あるいは他の形態の記憶素子であることができる。
メモリ300は、メモリカード領域とICチップ領域とに分割でき、各領域はメモリカードコントローラ100及びICチッププロセッサ200のみが利用することができる。
メモリカード領域にはホスト400から転送されたデータが格納され、ICチップ領域にはICチッププロセッサ200の基本動作実行に必要とされるモジュールが格納される
ことができる。
また、メモリ300は、セキュリティデータを格納するセキュリティメモリ領域、一般のデータが格納されるユーザメモリ領域、及びICチップメモリを管理するシステムメモリ領域に分割できる。これについては、図9を参照してより詳細に説明する。
図4は、本発明の一実施例によるAPDUコマンドの動作を説明するための例示図である。先ず、ホスト400とICチップとの間のAPDU転送方式を概略的に説明した後、MMCプロトコルを採用した実施例を説明する。
ICチップホストにより生成されたC−APDUは、4バイトのヘッダと可変長のボディで構成される。ヘッダは1バイトのCLA(Class of Instruction)、1バイトのINS(Instruction code)、1バイトのP1(parameter 1)、及び1バイトのP2(Parameter 2)で構成される。ボディは選択的ボディまたはデータフィールドの長さを特定する1バイトのLc、可変長のコマンドパラメータまたはデータを含むデータフィールド、返還データの予想長さを特定する1バイトのLeで構成される。ICチッププロセッサ200により生成されたR−APDUは、可変長のボディと二つの状態ワードSW1,SW2で構成される。ボディは選択的ボディまたはデータフィールドの長さを特定するLe、可変長さのデータで構成される。
ホスト400はICチップホストにより生成されたC−APDUに、C−APDUの長さを特定するLBヘッダを結合させて、これを複数のデータトークンにカプセル化する。
カプセル化された複数のデータトークンは、高速通信プロトコルを支援するホスト400と端末のメモリカードコントローラ100との間に形成された物理的階層を通してメモリカードコントローラ100に伝達される。受信された複数のデータトークンは、カードインターフェースコントローラ120によりLBヘッダ値を参照してAPDUにカプセル開放される。
以下では、MMCプロトコルによる高速通信プロトコルを用いた動作を詳細に説明する。
MMCプロトコルの場合、コマンド及び応答のコマンドトークン及びコマンドトークンに関連付けられたデータトークンがそれぞれコマンドライン及びデータラインを通して送受信される。データ読み取り/書き込みコマンド(ホスト400からICチップへの)及びこれに対する応答(ICチップからホスト400への)は、コマンドラインを通して送受信され、コマンドに従うデータは、データラインを通して送受信される。MMCプロトコルにおいて、データ読み取り/書き込みコマンドは、連続(sequential)コマンドとブロック指向(Block-oriented)コマンドに区別される。連続コマンドは、連続的データストリームを転送し、コマンドライン上に中止(stop)コマンドが出現するまで転送が続けられる。ブロック指向コマンドは、CRC(cyclic redundancy checking)を有する連続ブロック(トークン)を転送し、コマンドライン上に中止コマンドが出現するまでブロックの転送が続けられる。コマンドは、ホスト400からICチップに転送され、応答はICチップからホスト400に転送される。データはホスト400とICチップとの間で転送される。
コマンドトークンは全長が48ビットであって、開始ビット(start bit)と終了ビット(end bit)は、常に0と1である。開始ビットの次に位置した送信器ビット(transmitter bit)は、端末からのコマンドであることを示すビットであって、1であり、コマンド内容(content)は、送信器ビットの次に位置し、7ビットのCRCチェックサムビットにより保護される。
応答トークンは全長が48または136ビットであって、開始ビットと終了ビットは、常に0と1である。開始ビットの次に位置した送信器ビットは、ICチップからの応答であることを示すビットであって、0であり、応答内容は、送信器ビットの次に位置し、7ビットのCRCチェックサムビットにより保護される。
ブロック指向データトークンは、開始ビットと終了ビットが常に0と1である。開始ビット、終了ビット、CRCチェックサムを除いた残り部分の長さは512バイトであって、APDUの長さを示す2バイトのLBフィールドと510バイトのAPDUフィールドで構成される。APDUフィールドにはホスト400またはICチップからのC−APDUまたはR−APDUが含まれる。510バイトを超えるAPDUは、2以上のブロック指向データトークンに分割されて転送され、最後のブロック指向データトークンの満たされなかった残りのバイトには00hが挿入される。
図4を参照して説明すると、APDU通信は次の4種類のケースを含む。
ケース1:C−APDUのデータフィールド値及びR−APDUのデータフィールド値が両方とも存在しないケース
ケース2:C−APDUのデータフィールド値は存在しないが、R−APDUのデータフィールド値は存在するケース
ケース3:C−APDUのデータフィールド値は存在するが、R−APDUのデータフィールド値は存在しないケース
ケース4:C−APDUのデータフィールド値及びR−APDUのデータフィールド値が両方とも存在するケース
C−APDUのデータフィールド値が存在しない場合には、C−APDUはAPDUコマンド410に含まれるか、またはAPDUトークン420に含まれることができる(ケース1及びケース2)。一方、C−APDUのデータフィールド値が存在する場合には、C−APDUはAPDUトークン420に含まれて転送される(ケース3及びケース4)。上記二つのケースにおいて、C−APDUを含むAPDUトークン420は、APDUコマンド410とAPDU応答430との間で転送される。これは、R−APDUのデータフィールド値が存在しない場合、R−APDUをAPDU応答430から受信するためである。一方、C−APDUを転送するためのAPDUコマンド410が受信されたメモリカードコントローラ100は、スイッチ130の接続状態をメモリカードコントローラ−メモリ415からメモリカードコントローラ−ICチッププロセッサ425に変更する。
R−APDUのデータフィールド値が存在しない場合(ケース1及びケース3)や、サイズが十分に小さい場合、R−APDUはAPDU応答430に含まれる。
R−APDUのデータフィールド値が存在し、サイズがR−APDUを通して転送できない場合は次のように処理する。R−APDUのデータフィールド値が存在する場合には、ICチッププロセッサ200はR−APDUそれ自体、R−APDUが格納されたメモリのアドレス、または転送するR−APDUの存在を示す情報をメモリカードコントローラ100に伝達する。これを受信したメモリカードコントローラ100は、APDU応答430にR−APDU読み取り識別子を挿入して転送する。R−APDU読み取り識別子は、ホスト400に転送するR−APDUの存在を示す情報であって、一つ以上のビットを用いて単に存在するか否かだけを示したり、R−APDUが格納されたメモリ300のアドレスを示したり、またはこれらの組み合わせたことを示したりすることができる。R−APDU読み取り識別子が含まれたAPDU応答430を受信したホスト400は、読み取りコマンドに従ってR−APDUをICチップから読み取る。一方、APDU応答の転送前または転送後に、メモリカードコントローラ100はスイッチ130の接続状態を以前の接続状態または予め指定された接続状態に変更する。図4には、メモリカードコントローラ−メモリ間の接続状態に変更されることが示されている。
図5は、本発明の一実施例による接続コマンドの動作を説明するための例示図である。
メモリカードコントローラ100を通してICチップホストからC−APDUを受信すると、ICチッププロセッサ200は、メモリ300にアクセスする必要があるかどうかをC−APDUの種類及びC−APDUにデータが含まれているか否かに基づいて判断し、メモリ300からデータを読み取ったり書き込んだりする必要がある場合には、バスコントローラ210を通して接続コマンド500をデータライン上に出力する。データラインを通して接続コマンド500を受信したメモリカードコントローラ100は、接続状態をメモリカードコントローラ−メモリ505からICチッププロセッサ−メモリ515に変更する。ICチッププロセッサ200がメモリ300に接続されると、ICチッププロセッサ200は、予め割り当てられたメモリ300のICチップ領域を従来方式で接続してデータを読み取ったり書き込んだりする。従って、データライン上には何らの信号も発生しない。
メモリ300を用いた作業が終了すると、ICチッププロセッサ200は解除コマンドを発生するようにバスコントローラ210を制御し、メモリ300アクセス権限をカードインターフェースコントローラ120に渡す。勿論、他の実施例では、ICチッププロセッサ200が所定時間だけメモリ300へアクセスできる権限を与えるか、またはICチッププロセッサ200とメモリ300との間のデータやり取り状態をモニタリングしてICチッププロセッサ200の作業が終了したか否かを決定することもできる。したがって、解除コマンド520は、選択事項である。メモリ300を用いた作業が終了すると、メモリカードコントローラ100は、以前の接続状態または予め指定された接続状態に戻る。図5には、メモリカードコントローラ−メモリ間の接続状態に変更されることが示されている。
図6は、本発明の一実施例によるAPDUコマンド及び接続コマンドを用いたICチップの動作を説明するための例示図である。
ICチップホストからC−APDUが受信されたホスト400は、APDUコマンド600をコマンドラインを通してメモリカードコントローラ100に転送する。その後、C−APDUをAPDUトークン610にカプセル化し、データラインを通してメモリカードコントローラ100に転送する。APDUコマンド600の受信前に、メモリカードコントローラ100とメモリ300とは605のように接続されている。APDUコマンド600を受信したメモリカードコントローラ100は、接続状態を変更して、メモリカードコントローラ−ICチッププロセッサが615のように接続されるようにする。その後、データラインを通してAPDUトークン610が受信されと、メモリカードコントローラ100は、C−APDUにカプセル開放してICチッププロセッサ200に伝達する。C−APDUを受信したICチッププロセッサ200は、メモリ200アクセスが必要であるか否かを判断し、必要であれば接続コマンド620をコマンドラインに出力する。接続コマンド620を受信したメモリカードコントローラ100は、625のように接続状態をICチッププロセッサ−メモリに変更する。その後、メモリカードコントローラ100は、ICチッププロセッサ200からR−APDUが受信されると、これをAPDU応答630に変換してホスト400に転送する。APDU応答630の転送前後に、メモリカードコントローラ100の接続状態は現在の接続状態を維持するか、以前の接続状態または予め指定された接続状態に変更される。
図7及び図8は、本発明の一実施例によるAPDUコマンド及び接続コマンドを用いたICチップの動作であって、データフィールド値を有するR−APDUを転送するICチップの動作を説明するための例示図である。図面符号「700」〜「730」及び図面符号「800」〜「830」は図6の図面符号「600」〜「630」と同じであるため、以下では他の部分を中心に説明する。
以後、メモリカードコントローラ100は、ICチッププロセッサ200からR−APDUまたはこれに対応する応答(R−APDUが格納されたメモリアドレス、転送するR−APDUの存在を示す情報など)が受信されると、これをAPDU応答730に変換してホスト400に転送する。メモリカードコントローラ100は、APDU応答730にR−APDU読み取り識別子を挿入して転送する。一方、APDU応答730の転送前後に、メモリカードコントローラ100の接続状態は735のように現在の接続状態を維持するか、以前の接続状態または予め指定された接続状態に変更される。
R−APDU読み取り識別子が含まれたAPDU応答730を受信したホスト400は、読み取りコマンド740を通してR−APDUをICチップから読み取る。読み取りコマンド740を受信したメモリカードコントローラ100は、読み取り応答750をホスト400に転送し、R−APDUをデータトークン760にカプセル化してホスト400に転送する。データトークン760の転送が完了されると、ホスト400は中止コマンド770をメモリカードコントローラ100に転送し、メモリカードコントローラ100は、これに対する応答として中止応答780をホスト400に転送する。
ICチッププロセッサ200がR−APDUの存在を示す情報だけをメモリカードコントローラ100に転送する実施例では、APDUコマンド840は読み取りコマンドであって、ICチッププロセッサ200からデータを読み取るコマンドである。従って、メモリカードコントローラ100は、APDUコマンド840により接続状態をメモリカードコントローラ−ICチッププロセッサに変更し(855)、ICチッププロセッサ200は、接続状態変更に応じて一時的に格納していたR−APDUをメモリカードコントローラ100に転送する。メモリカードコントローラ100は、R−APDUをデータトークン850にカプセル化してホスト400に転送し、865のように接続状態を変更する。
図9は、本発明の一実施例によるセキュリティアルゴリズムの実行を説明するための図面である。
ICチップは、データ入出力端子910、ICチッププロセッサ200、及びICチップメモリ920を含むことができる。
データ入出力端子910は、端末の外部から入力されるデータをICチップに入出力するための端子であって、上述したデータライン及びコマンドラインに接続される。データ入出力端子910は、ISO7816、RF、MMC、USB規格などの多様な形態で入出力することができる。
ICチッププロセッサ200は上述したように、接続状態に応じてメモリ300とデータをやり取りし、ICチップの機能を行うためにICチップを制御し、ホスト400の要求により、データラインを通して伝達されるデータに対して暗号化することを望む場合は、セキュリティアルゴリズムを駆動してデータを暗号化されたセキュリティデータに変更する。ICチッププロセッサ200は、暗号化されたセキュリティデータをメモリ300のセキュリティメモリ領域310に格納する。
セキュリティアルゴリズムをICチッププロセッサ200により駆動し、暗号化されたセキュリティデータに変更してメモリ300のセキュリティメモリ領域310に格納し、同じセキュリティアルゴリズムを用いて格納されたセキュリティデータを復号化された一般のデータに変更してホスト400に伝達する過程をセキュリティ処理(Secure Processing)過程という。
ホスト400から、制御信号により暗号化されることなく、一般のデータとして管理されることが要求された場合は、ICチッププロセッサ200によるセキュリティアルゴリズムを駆動せずに、メモリ300のユーザメモリ領域320に格納し、これを照会時、復号化過程を経ずにホスト400に伝達する過程を一般処理過程という。
セキュリティアルゴリズムは、上述したように当該技術分野で広く知られたものを利用でき、例えば、DES、3−DES、AESの何れか一つであることができる。
本発明でセキュリティアルゴリズムは、データラインを通して入出力される全てのデータに対して実行されるものではなく、ホスト400から要求されたデータに対して実行されることができ、制御プログラムにより予め設定された種類のデータに対して実行されることができる。
セキュリティアルゴリズムは、ICチップメモリ920内に搭載された制御プログラムにより実行されることができる。制御プログラムは、データラインを通して入力されるデータを暗号化するか否か、及び、メモリ300に格納されたデータを復号化するか否かを制御したり、メモリ上のアドレスをICチップメモリ920またはシステムメモリ領域330に格納したりすることができる。また、制御プログラムは、メモリ300のシステムメモリ領域330に格納されることができる。
制御プログラムは、グラフィックユーザインターフェース(GUI)を通して端末のユーザにデータを暗号化するか否かを問うことができる。この時、ユーザが暗号化を要求する場合、制御プログラムはセキュリティアルゴリズムを実行して該データを暗号化して、これをメモリ300に格納し、ICチップメモリ920またはシステムメモリ領域330にデータが暗号化されたという情報及び格納されたデータのメモリ上のアドレスを格納することができる。
一方、ユーザが暗号化を要求しなかった場合、制御プログラムはセキュリティアルゴリズムを実行せずに、該データをメモリ300に格納する。ICチップの格納領域にはデータが暗号化されなかったという情報及び格納されたデータのメモリ上のアドレスを格納する。このように、データが暗号化されたか否かのことやメモリ上のアドレスは、後で制御プログラムがメモリ300に格納されたデータを検索する場合に必要な情報である。
グラフィックユーザインターフェース(GUI)は、制御プログラム内に一つのモジュールで含まれてもよく、端末上で実行される様々なアプリケーション内に別途に具備されてもよい。アプリケーションの例については、図12を参照してより詳細に説明する。
メモリ300は、ICチップと一つのモジュールで構成された統合ICチップで構成されることができ、ICチップと別途のモジュールで連動される形態で構成されることもできる。
メモリ300が統合ICチップ形態で構成される場合、ICチップとメモリ300との間には、データ転送のためにアドレスバス(Address Bus)及びデータバス(Data Bus)を構成することができる。
メモリ300がICチップと別途の形態で構成される場合、ISO7816、MMC規格、ISO14443、ISO15693、ISO18092の何れか一つの方式でICチップとメモリ300との間のデータがやり取りされる。統合ICチップ形態が、別途で連動される形態に比べて、動作速度がより速いという長所がある。
GSM方式のSIMカードや、W−CDMA方式のUSIMカードのような形態で具体化されたICチップは、移動通信加入者情報を格納したものであって、移動通信端末に装着するだけで、自分の移動通信端末として使用可能である。また、ICチップには個人情報、金融情報などセキュリティを必要とする情報が格納される。
本発明の一実施例によるメモリ300は、ICチッププロセッサ200によりセキュリティアルゴリズムを駆動して、メモリ300に暗号化されたデータを格納するセキュリティメモリ領域310、暗号化されない一般のデータを格納するユーザメモリ領域320、及びICチップメモリ920を管理するシステムメモリ領域330を含むことができる。ここで、ICチッププロセッサ200は、セキュリティ処理を担当するコプロセッサを含むことができる。
メモリ300は、メモリアドレスを予め区画指定し物理的に区分してセキュリティデータ及び一般のデータを格納できるが、メモリ300の効率的な管理のために、上述したように領域を予め分割して設定することが好ましい。メモリ300は、例えば、大容量データを格納できるフラッシュメモリを使用できる。
上述したメモリ領域分割は、ユーザが端末のメモリ管理プログラムを用いて、自分が所望する割合でメモリ300をセキュリティメモリ領域及びユーザメモリ領域に分けて利用することができる。システムメモリ領域はメモリ領域を全体的に管理するので、一般的にはアクセスできない領域である。
ユーザが端末のメモリ管理プログラムを用いて、自分が所望する割合でメモリ領域を分割する場合、最初にメモリが端末に接続されると、システムメモリ領域に格納されている初期設定アプレットがローディングされてメモリ領域を設定できるように駆動される。
ユーザが、一般的にメモリ機能を多く使用する場合には、ユーザメモリ領域をより多く使用できるように設定でき、モバイルコンテンツを多く使用する場合には、セキュリティメモリ領域をより多く設定することができる。
設定方式は、例えば、ユーザメモリ:セキュリティメモリ=50%:50%の割合で設定すれば、システムメモリ領域にてメモリ300の全体の物理的アドレスを管理するユーザ領域とセキュリティ領域を分割することができる。
分割された各領域には、アクセスポリシーが別に適用されて、ユーザが制御できる部分はユーザメモリ領域部分となる。端末には、メモリ管理プログラムを採用して、ICチップのシステムメモリ領域に格納されているメモリ管理アプレットを駆動してメモリ領域をリセットできるようにする。
この場合もシステムメモリにより管理されているメモリアドレスリセットから、アクセスポリシーを利用してユーザのアクセス可能な部分を設定することができる。
一方、各領域は、固有サイズを有してもよいが、各領域のサイズを動的に変更できることが好ましい。
図10は、本発明の一実施例によるデータセキュリティアルゴリズムを用いてデータを暗号化する過程を説明するためのフローチャートである。
図10を参照すると、ステップS1010で、制御プログラムがICチップの入出力端子を通して入力されたデータを暗号化するか否かを端末のユーザに確認する。
ステップS1020で、ユーザがデータの暗号化を選択した場合、制御プログラムはユーザからセキュリティキーの入力を受けてこれを認証する。ここで、認証方法としては、PINまたは暗証番号を利用することができる。
ステップS1030で、セキュリティキーの認証が成功したら、制御プログラムはICチッププロセッサ200によりセキュリティアルゴリズムを実行し、データを暗号化する。セキュリティキーの認証に失敗した場合は、そのままプロセスは終了する。
一方、ユーザがデータの暗号化を選択しなかった場合には、データを暗号化するステップS1030を経ないで、ステップS1040に進む。
ステップS1040で、データをメモリ300に格納し、格納されたデータを暗号化したか否か、及び格納されたデータのメモリ上のアドレスをICチップ内のICチップメモリ920に格納する。ここで、「データを暗号化したか否か」は、ステップS1030を経た場合にはデータが暗号化されたという情報をステップS1040で格納し、ステップS1030を経なかった場合にはデータが暗号化されなかったという情報をステップS1040で格納する。
ステップS1050で、制御プログラムはデータの格納結果を端末の表示部を通してユーザに提供する。
図11は、本発明の一実施例によるデータセキュリティアルゴリズムを用いてデータを復号化する過程を説明するためのフローチャートである。
図11を参照すると、ステップS1110で、ユーザから移動通信端末のグラフィックユーザインターフェースを通して制御プログラムに、メモリ300に格納されているデータの検索が要求される。
ステップS1120で照会したデータが暗号化されたデータである場合、制御プログラムはユーザのセキュリティキーを認証する。セキュリティキーの認証はPINまたは暗証番号を利用することができる。
ステップS1130で、セキュリティキーの認証が成功したら、ステップS1140で、制御プログラムはメモリ上のアドレスから検索したデータを、ICチッププロセッサ200によりセキュリティアルゴリズムを実行して復号化する。若しステップS1120でデータが暗号化されなかったと照会された場合、ステップS1140は行われない。一方、ステップS1130で、セキュリティキーの認証が失敗された場合、そのままプロセスは終了する。
ステップS1150で、制御プログラムにより、復号化されたデータまたは暗号化されなかったデータが移動通信端末の表示部を通してユーザに提供される。
図12は、本発明の一実施例によるメモリのセキュリティメモリ領域に格納可能なデータのブロック図である。
図12に示すデータは、端末の設定情報及び端末ユーザの個人情報を項目別に区分して構造化したものである。
このように構造化されたデータは、図12に示すように、個人ユーザインターフェース(MY UI)項目、個人日程管理システム(PIMS:Personal Information Management System)項目、ブラウザ(Browser)項目、金融(Finance)項目、及びアプリケーション(Application)項目に区分されることができる。
個人ユーザインターフェース項目には、ユーザが移動通信端末を便宜に使う目的や、飾る目的で設定された情報として待受画面、ベル音(着信音など)、時間設定、フォント、自分のアバタ、たまごっちなどの情報が含まれる。
PIMS項目には、電話番号、スケジュール管理、アラーム、SMS発信/着信、電子メールなどの情報が含まれる。ブラウザ項目には、お気に入り、履歴情報などが含まれる。
金融項目には、口座番号、暗証番号、使用履歴、送金口座番号などの情報が含まれる。
アプリケーション項目には、移動通信端末上で実行されるメッセンジャ、テレメトリ、DMB、オフィス、及びIDが含まれることができる。
メッセンジャ項目には、チャットのために用いられるメッセンジャに主に用いられる情報、例えば、私のID、友人リスト、遮断リスト、履歴情報などが含まれることができる。
テレメトリ項目には、例えば、端末上で道案内サービスを受けるために必要とされる情報で、お気に入り、我が家などの出発ポイント、設定情報、履歴情報などが含まれることができる。
DMB項目には、端末上で放送サービスを受けるために必要とされる情報、例えば、チャンネルリスト、プログラムリスト、設定情報などが含まれることができる。
オフィス項目には、端末上でオフィスグループウェアなどに接続するために格納される情報、例えば、VPN(Virtual Private Network)、設定情報などが含まれることができる。
ID項目には、家または職場の出入り口キー値、または端末上で電車や航空機を予約する場合に発生する仮予約番号などの情報が含まれることができる。
図12に示されたデータ以外にも暗号化を必要とする情報が含まれることができることは、本発明が属する技術分野で通常の知識を有する者であれば容易に理解できるだろう。
このように暗号化を必要とする情報を構造化して格納し、これを端末のユーザに提供することにより、端末のユーザは設定情報や個人情報をより簡単に暗号化して格納し、これを利用することができる。また、端末などを交替する場合にも新規端末に本発明のデータが格納されたICチップまたはメモリ300を装着することにより、既存の情報をそのまま利用でき、PINや暗証番号のようなセキュリティキーで個人情報や設定情報を管理するので、移動通信端末を失った場合や盗まれた場合にも個人情報の流出の恐れはない。
上述したように本発明によれば、ICチップが基本動作を実行するために大容量メモリを利用することができるので従来に比べてメモリ容量の物理的限界を克服することができる。これにより、サイズの大きい認証書またはセキュリティアルゴリズムコードのような、従来には搭載が不可能であったデータを格納することができる。
一方、ホスト400との通信が高速通信プロトコルで行われるので、従来に比べてデータ送受信が速くなる。
また、データを大容量メモリに格納時、ICチップのセキュリティアルゴリズムを用いて格納したり使用したりすることができるので、高速通信プロトコルだけを用いた場合より大容量メモリのセキュリティ性が向上される。
以上、本発明の実施例を参照して説明したが、当該技術分野で通常の知識を有する者であれば、特許請求の範囲に記載された本発明の思想及び領域から脱しない範囲内で本発明を多様に修正及び変更させることができることを理解できよう。
従来のICチップを示すブロック図である。 本発明を概略的に説明するための例示図である。 本発明の一実施例によるICチップを示すブロック図である。 本発明の一実施例によるAPDUコマンドの動作を説明するための図面である。 本発明の一実施例による接続コマンドの動作を説明するための図面である。 本発明の一実施例によるAPDUコマンド及び接続コマンドを用いたICチップの動作を説明するための図面である。 本発明の一実施例によるAPDUコマンド及び接続コマンドを用いたICチップの動作であって、データフィールド値を有するR−APDUを転送するICチップの動作を説明するための図面である。 本発明の他の実施例によるAPDUコマンド及び接続コマンドを用いたICチップの動作であって、データフィールド値を有するR−APDUを転送するICチップの動作を説明するための図面である。 本発明の一実施例によるデータセキュリティアルゴリズム実行を説明するための図面である。 本発明の一実施例によるデータセキュリティアルゴリズムを用いてデータを暗号化する過程を説明するためのフローチャートである。 本発明の一実施例によるデータセキュリティアルゴリズムを用いてデータを復号化する過程を説明するためのフローチャートである。 本発明の一実施例によるメモリのセキュリティメモリ領域に格納できるデータのブロック図である。
符号の説明
100 メモリカードコントローラ
110 インターフェースドライバ
120 カードインターフェースコントローラ
130 スイッチ
140 レジスタ
150 メモリコアインターフェース
160 電源検知部
200 ICチッププロセッサ
210 バスコントローラ
300 メモリ
400 ホスト

Claims (13)

  1. コマンドを伝達するコマンドラインと、
    データトークンを伝達するデータラインと、
    データを格納するメモリと、
    接続状態に応じて前記メモリと前記データをやり取りするプロセッサと、
    前記プロセッサの制御により、前記メモリとの接続状態設定を要求するコマンドを前記コマンドライン上に出力するバスコントローラと、
    前記コマンドラインで受信されたコマンドに応じて、前記データライン、前記メモリ、及び前記プロセッサとの間の接続を変更するメモリカードコントローラと、
    を含み、
    前記コマンドは、前記メモリカードコントローラと前記プロセッサとの間の接続を設定するAPDU(Application Protocol Data Unit)コマンド、及び、前記プロセッサと前記メモリとの間の接続を設定する接続コマンドを含み、
    前記メモリカードコントローラは、APDUコマンドの応答データの転送が完了したことに応じて、予め設定されたポリシーにより前記接続の状態を変更することを特徴とするICチップ。
  2. 前記メモリカードコントローラは、
    前記コマンドライン及び前記データラインを通してホストと通信するインターフェースドライバと、
    前記コマンドラインで受信されたコマンドの種類を判断し、それに対応する接続状態の変更信号を出力するカードインターフェースコントローラと、
    前記カードインターフェースコントローラの状態情報を格納するレジスタと、
    前記接続状態の変更信号に応じて、前記カードインターフェースコントローラ、前記プロセッサ、及び前記メモリとの間の接続を変更するスイッチと、
    前記スイッチに接続され、前記メモリにアクセスしてデータの読み取りや書き込みを行うメモリコアインターフェースと、
    電源供給の際、前記カードインターフェースコントローラ及び前記メモリコアインターフェースにリセット信号を適用する電源検知部と、
    を含むことを特徴とする請求項1に記載のICチップ。
  3. 前記コマンドは、前記プロセッサと前記メモリとの間の接続を解除する解除コマンドをさらに含むことを特徴とする請求項1に記載のICチップ。
  4. 前記メモリカードコントローラは、前記APDUコマンドに対応するAPDUトークンをC−APDU(Command APDU)に変換(カプセル開放)して前記プロセッサに出力することを特徴とする請求項1に記載のICチップ。
  5. 前記メモリカードコントローラは、前記APDUコマンドに含まれたC−APDU(Command APDU)を前記プロセッサに出力することを特徴とする請求項1に記載のICチップ。
  6. 前記メモリカードコントローラは、前記プロセッサから出力されたR−APDU(Response APDU)に応答データが含まれていない場合、前記R−APDUをAPDU応答に挿入して前記データラインを通して出力することを特徴とする請求項1に記載のICチップ。
  7. 前記メモリカードコントローラは、前記プロセッサから出力されたR−APDUに応答データが含まれている場合、応答データの存在を示す応答データ識別子をAPDU応答に挿入して前記データラインを通して出力することを特徴とする請求項1に記載のICチップ。
  8. 前記メモリは、フラッシュメモリであることを特徴とする請求項1または請求項2に記載のICチップ。
  9. 前記メモリは、ICチップ領域とメモリカード領域を含むことを特徴とする請求項8に記載のICチップ。
  10. 前記プロセッサは、セキュリティアルゴリズムを用いて前記メモリに格納されたデータの一部に対してデータセキュリティ処理を行うことを特徴とする請求項1に記載のICチップ。
  11. 前記プロセッサに接続され、前記プロセッサの演算結果を一時的に格納するRAM(Random Access Memory)をさらに含むことを特徴とする請求項1または請求項2に記載のICチップ。
  12. 前記メモリカードコントローラは、前記プロセッサと前記メモリとを所定時間の間接続させることを特徴とする請求項1または請求項2に記載のICチップ。
  13. コマンドライン及びデータラインを通してホストと通信し、メモリ及びプロセッサに接続されているメモリカードコントローラが、前記メモリ及び前記プロセッサとの接続状態を変更する方法であって、
    前記コマンドラインでコマンドを受信するステップと、
    前記コマンドがAPDUコマンドである場合には、前記プロセッサが前記データラインを通したAPDUの送受信を許可するステップと、
    前記コマンドが接続コマンドである場合には、前記プロセッサと前記メモリを接続させるステップと、
    前記メモリカードコントローラが、APDUコマンドの応答データの転送が完了したことに応じて、予め設定されたポリシーにより前記接続の状態を変更するステップとを含み、
    前記コマンドは、前記メモリカードコントローラと前記プロセッサとの間の接続を設定するAPDU(Application Protocol Data Unit)コマンド、及び、前記プロセッサと前記メモリとの間の接続を設定する接続コマンドを含むことを特徴とする接続状態の変更方法。
JP2009500298A 2006-03-16 2007-03-16 大容量メモリを支援するicチップ及び支援方法 Expired - Fee Related JP5022434B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
KR10-2006-0024337 2006-03-16
KR1020060024337A KR20070094108A (ko) 2006-03-16 2006-03-16 데이터 보안 장치 및 이를 포함하는 이동 통신 단말기
KR10-2006-0026954 2006-03-24
KR1020060026954A KR100738032B1 (ko) 2006-03-24 2006-03-24 대용량 메모리 지원 스마트 카드 및 지원 방법
PCT/KR2007/001295 WO2007105926A1 (en) 2006-03-16 2007-03-16 Ic chip of supporting large size memory and method thereof

Publications (2)

Publication Number Publication Date
JP2009529745A JP2009529745A (ja) 2009-08-20
JP5022434B2 true JP5022434B2 (ja) 2012-09-12

Family

ID=38509707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009500298A Expired - Fee Related JP5022434B2 (ja) 2006-03-16 2007-03-16 大容量メモリを支援するicチップ及び支援方法

Country Status (2)

Country Link
JP (1) JP5022434B2 (ja)
WO (1) WO2007105926A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8613087B2 (en) 2010-12-06 2013-12-17 Samsung Electronics Co., Ltd. Computing system
KR20190075363A (ko) 2017-12-21 2019-07-01 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 모듈

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6385955A (ja) * 1986-09-30 1988-04-16 Toshiba Corp ダイレクトメモリアクセス転送制御装置
JPH0749817A (ja) * 1993-08-06 1995-02-21 Hitachi Ltd Dma転送制御装置
JP2000251035A (ja) * 1999-02-26 2000-09-14 Hitachi Ltd メモリカード
JP4053704B2 (ja) * 2000-01-05 2008-02-27 株式会社東芝 無線インタフェース機能内蔵icカード、アンテナモジュール、情報処理装置
JP4207404B2 (ja) * 2001-06-27 2009-01-14 ソニー株式会社 携帯端末及びその制御方法、並びに、icカード
JP4185680B2 (ja) * 2001-07-09 2008-11-26 株式会社ルネサステクノロジ 記憶装置
JP2004104539A (ja) * 2002-09-11 2004-04-02 Renesas Technology Corp メモリカード
KR20040085793A (ko) * 2003-04-01 2004-10-08 이상은 응용프로그램 내장형 스마트 이동저장장치
JP2004334471A (ja) * 2003-05-07 2004-11-25 Matsushita Electric Ind Co Ltd 情報カード
KR100618814B1 (ko) * 2003-07-04 2006-08-31 삼성전자주식회사 다중 호스트 인터페이스를 지원하는 스마트 카드 겸용이동형 저장 장치 및 이에 대한 인터페이스 방법
US7823209B2 (en) * 2003-11-06 2010-10-26 Panasonic Corporation Information recording medium, information recording medium accessing device, and area setting method
TW200604810A (en) * 2004-02-20 2006-02-01 Renesas Tech Corp Nonvolatile memory and data processing system
WO2005122070A1 (ja) * 2004-06-09 2005-12-22 Renesas Technology Corp. Icカードモジュール

Also Published As

Publication number Publication date
JP2009529745A (ja) 2009-08-20
WO2007105926A1 (en) 2007-09-20

Similar Documents

Publication Publication Date Title
US9462470B2 (en) Dual interface device for access control and a method therefor
US9141904B2 (en) RFID device, host, RFID-embedded apparatus, and method of controlling RFID device
JP5005811B2 (ja) アプリケーションを携帯電話にセキュアに伝送するための方法、システム及びトラステッド・サービス・マネージャ
JP6088664B2 (ja) 近距離無線通信においてセキュアエレメントの選択を実現する方法、移動端末及びpos機
CN102026187B (zh) 用户识别模块及基于该用户识别模块的传输方法、***
JP5499913B2 (ja) 通信装置、通信方法及び通信システム
US20090206984A1 (en) Application control method in an nfc chipset comprising several host processors
JP2002329180A (ja) 無線通信機能を有するメモリカード及びそのデータ通信方法
JP2007317170A (ja) Icモジュールおよび携帯電話
JP2006222787A (ja) 無線通信システム,リーダ/ライタ装置,鍵管理方法,およびコンピュータプログラム
JP2008210301A (ja) 記憶媒体、通信システム、並びに制御装置。
CN101872334A (zh) 一种复合型usb设备及其实现方法
JP6334551B2 (ja) 設定可能な通知手段を備えるnfcデバイス
EP1703408A1 (en) Data communicating apparatus and method for managing memory of data communicating apparatus
US10085268B2 (en) Communications device and communications system
CN101401113B (zh) 支持大尺寸存储器的ic芯片及其方法
JP5022434B2 (ja) 大容量メモリを支援するicチップ及び支援方法
JP4236830B2 (ja) アップロード機能付き記憶装置
KR100738032B1 (ko) 대용량 메모리 지원 스마트 카드 및 지원 방법
JP4590201B2 (ja) データキャリア及びデータキャリアのプログラム
KR100574238B1 (ko) Usb 인터페이스를 갖는 보안 칩을 구비한 데이터 저장장치 및 방법
US8965299B2 (en) Method and system for the processing control of multiple radio frequency communication streams by an integrated circuit card
CN112613872A (zh) 作为协议接口的类型4nfc标记
JP2012008888A (ja) 通信システム、通信方法及び携帯可能電子装置
JP3911153B2 (ja) マルチアプリケーションicカード及びその書き込み方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111102

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120404

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120411

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

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

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

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees